Версия для печати темы (https://pro1c.org.ua/index.php?s=c9c40a79ecc31748c0d95f56b09763d8&showtopic=41403)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ ошибка при добавление колонки Штрихкода в прайс листе УТ 11.3

Автор: Alien900 29.10.17, 11:28

Доброго времени суток. подскажите как правильно прописать в дерево значений колонку с регистром накопления?

саму колонку создал, но она не заполняется штрихкода из регистра. пробовал подать через массив, выходит ошибка ошибка

{ОбщийМодуль.УстановкаЦенСервер.Модуль(27)}: Ошибка при вызове конструктора (ОписаниеТипов)
ДеревоЗначений.Колонки.Добавить("Штрихкод", Новый ОписаниеТипов("Штрихкод")); // Штрихкод для Прайслиста доработка
по причине:
Недопустимое значение параметра (параметр номер '1') (Штрихкод)


сам код который, как бы должен был пройтись по регистру и подставить штрих коды.

Код дерева значений
Процедура ПостроитьДеревоЦен(Форма, ИмяТаблицы = "ДеревоЦен") Экспорт
    
    ДобавляемыеКолонкиТаблицыЦен = Новый Массив();
    УдаляемыеКолонкиТаблицыЦен   = Новый Массив();
    УдаляемыеЭлементы            = Новый Массив();
    УсловныеОформления           = Новый Массив();
    Штрихкод                      = Новый Массив(); // Штрихкод для Прайслиста доработка
    Если ТипЗнч(Форма.ДеревоЦен) = Тип("ДанныеФормыКоллекция") Тогда
        ДеревоЗначений = Новый ТаблицаЗначений;
    Иначе
        ДеревоЗначений = Новый ДеревоЗначений;
    КонецЕсли;
    
    ДеревоЗначений.Колонки.Добавить("Номенклатура",               Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
    ДеревоЗначений.Колонки.Добавить("Характеристика",             Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
    ДеревоЗначений.Колонки.Добавить("ИндексКартинки",             Новый ОписаниеТипов("Число"));
    ДеревоЗначений.Колонки.Добавить("ЕдиницаИзмерения",           Новый ОписаниеТипов("СправочникСсылка.УпаковкиЕдиницыИзмерения"));
    ДеревоЗначений.Колонки.Добавить("Артикул",                    Новый ОписаниеТипов("Строка"));
    ДеревоЗначений.Колонки.Добавить("Штрихкод",                   Новый ОписаниеТипов("Штрихкод"));  // Штрихкод для Прайслиста доработка
    ДеревоЗначений.Колонки.Добавить("ХарактеристикиИспользуются", Новый ОписаниеТипов("Булево"));
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    Если Штрихкод Тогда
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ШтрихкодыНоменклатуры.Штрихкод,
        |    ШтрихкодыНоменклатуры.Номенклатура
        |ИЗ
        |    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(Штрихкод);
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
    КонецЦикла;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

        
    
    КонецЕсли;

    //////////////////////////

Автор: salton 30.10.17, 9:00

ДеревоЗначений.Колонки.Добавить("Штрихкод", Новый ОписаниеТипов("Строка"));

сделайте так

Автор: Alien900 31.10.17, 13:55

salton @ Вчера, 13:00 * ,
Спасибо. строку подставлял. колонка со строкой появляется, но не заполняет штрих код. где-то в запросе ошибаюсь.

Автор: salton 31.10.17, 16:10

штрихкоды хранятся вроде как в регистре сведений. непериодическом.

получить можно разными путями. к сожалению сейчас под рукой нет восьмерки потому попробуйте так:

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
|Штрихкоды.Штрихкод КАК Штрихкод
|ИЗ
|    РегистрСведений.Штрихкоды КАК Штрихкоды
|ГДЕ
|    Штрихкоды.Владелец = &Владелец
|
|СГРУППИРОВАТЬ ПО
|    Штрихкоды.Штрихкод
|
|УПОРЯДОЧИТЬ ПО
|    Штрихкод УБЫВ
"
Запрос.УстановитьПараметр("Владелец",Товар);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ШК=Выборка.Штрихкод;
КонецЕсли;


в параметры запроса передаем номенклатуру как владельца по которой хотим получить штрихкод

Автор: logist 31.10.17, 16:46

salton, Зачем такие сложности если надо выбрать один штрихкод? СГРУППИРОВАТЬ (при ПЕРВЫЕ 1 тем более) и УПОРЯДОЧИТЬ в этом случае не имеет смысла.

Автор: salton 01.11.17, 8:38

Цитата(logist @ 31.10.17, 16:46) *
Зачем такие сложности если надо выбрать один штрихкод?

Вы правы!
К сожалению у меня нет доступа к восьмерке... Но помнится мне что должен быть еще проще метод....
Что типа: РегистрыСведений.НужныйРегистр.СрезПоследних(НачПериода,Стрктура).Получить() но для непериодческих ... Не помните?

Автор: logist 01.11.17, 11:47

Цитата(salton @ 01.11.17, 9:38) *
К сожалению у меня нет доступа к восьмерке...

Ну, вы либо знаете, либо нет wink.gif

Цитата(salton @ 01.11.17, 9:38) *
Не помните?

А зачем, запрос тоже нормальная реализация.

Автор: Alien900 04.11.17, 0:20

logist @ 01.11.17, 15:47 * ,
Пока до выходных отложил этуформу, пошел простым путем, добавил колонку штрихкод в отчет. На выходных надеюсь поправлю запрос)
а так может кому пригодится отчет с штрихкодами для УТ 11.(2-3) [тут была ссылка на запрещенный в Украине ресурс]

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua