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

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Где описывается код "меню действия", вывести список (обычный клиент)

Автор: george_smith 24.10.19, 11:36

Здравствуйте!
1С:Предприятие 8.3 (8.3.10.2299) "Управление торговым предприятием для Украины", редакция 1.2. (1.2.53.1)
Хотел бы получить помощь, что бы узнать где в данной конфигурации (обычный клиент) описывается код "меню действия", вывести список?

Автор: Vofka 24.10.19, 11:51

В списках? Если да, то нигде, это системная кнопка. А что вы хотели бы там поменять?

Автор: george_smith 24.10.19, 12:01

Vofka @ Сегодня, 12:51 * ,
У нас в конфе на форму элемента "Номенклатура" вынесен регистр сведений ШрихКоды и установлен отбор по текущему элементу. То есть видно "штрихкод" для каждого элемента номенклатуры в справочнике. Но так как это только отображение регистра, в форму списка нельзя добавить колонку ШтрихКод, как хотят бухи, что было удобно смотреть, стандартными средствами. Подскажите способ как схитрить или вообще не стоит это решать. Для каждого элемента номенклатуры только один штрихкод. Спасибо!

Автор: Vofka 24.10.19, 12:15

george_smith, вы хотите в форму списка Номенклатуры добавить колонку Штрихкод?

Автор: pablo 24.10.19, 12:31

Без изменения конфигурации - никак

Автор: george_smith 24.10.19, 12:54

pablo @ Сегодня, 13:31 * ,
Конфигурация изменена, проблем нет. Хотелось бы услышать совет, каким способом это правильно сделать. ;-)

Vofka @ Сегодня, 13:15 * ,
Да, как раз это хочу.

Автор: Vofka 24.10.19, 13:03

george_smith, https://pro1c.org.ua/topic/vyvod-dannyh-iz-polya-tablichnoj-chasti-v-dopolnitelnoe-pole-formy-spiska-dokumenta-54686/?hl= аналогичный вопрос. Только источник данных у вас будет регистр Штрихкодов.

Автор: george_smith 25.10.19, 15:07

Vofka @ Вчера, 14:03 * ,

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

                
    КонецЦикла;
    
        
    
КонецПроцедуры


Не работат! :-)

Автор: sava1 25.10.19, 16:18

Цитата(george_smith @ 25.10.19, 16:07) *
Выборка = РЗ.Выбрать(); Пока Выборка.Следующий() Цикл Для Каждого Эл Из Соо Цикл Если Выборка.НоменклатураРегистраШтрихКод = Эл.Ключ Тогда Эл.Значение = Выборка.Штрихкод; КонецЕсли; КонецЦикла; КонецЦикла;


здеся не так.

Выборка делается по оформлению

Для каждого ос из ОформленияСтроки Цикл


для рз надо добавить индекс - иначе будет тормозиииить....

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

если нашли -
ос.Ячейки.Штрихкод.Текст (или значение) = найденнаяСтрокаВыборки.Штрихкод



ну и конецЦикла

Автор: george_smith 26.10.19, 12:01

Спасибо Всем, кто помагал!
Методом проб и ошибок создадал вот такой рабочий код.

Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
    Масс = Новый Массив;
    Для Сч=0 По ОформленияСтрок.Количество() -1  Цикл
        Если  НЕ ОформленияСтрок[Сч].ДанныеСтроки.ЭтоГруппа  Тогда
            Масс.Добавить(ОформленияСтрок[Сч].ДанныеСтроки.Ссылка);            
        КонецЕсли;
    КонецЦикла;
        
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    Штрихкоды.Владелец.Ссылка КАК НоменклатураРегистраШтрихКод,
    |    Штрихкоды.Штрихкод КАК Штрихкод
    |ИЗ
    |    РегистрСведений.Штрихкоды КАК Штрихкоды
    |ГДЕ
    |    ТИПЗНАЧЕНИЯ(Штрихкоды.Владелец) = ТИП(Справочник.Номенклатура)
    |    И Штрихкоды.Качество.Ссылка = ЗНАЧЕНИЕ(Справочник.Качество.Новый)
    |    И Штрихкоды.Владелец.Ссылка В (&Масс)
    |
    |СГРУППИРОВАТЬ ПО
    |    Штрихкоды.Владелец.Ссылка,
    |    Штрихкоды.Штрихкод";
    
    Запрос.УстановитьПараметр("Масс",Масс );
    РЗ = Запрос.Выполнить();
    ТЗ = РЗ.Выгрузить();
        
    Для Каждого ОС ИЗ ОформленияСтрок Цикл
        СтрокаТЗ = ТЗ.Найти(ОС.ДанныеСтроки.Ссылка);
        Если СтрокаТЗ <> Неопределено Тогда
            ОС.Ячейки.ШтрихКодМой.Значение = СтрокаТЗ.Штрихкод;
            ОС.Ячейки.ШтрихКодМой.Текст = СтрокаТЗ.Штрихкод;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

Станно, что
ОС.Ячейки.ШтрихКодМой.Значение = СтрокаТЗ.Штрихкод;
            ОС.Ячейки.ШтрихКодМой.Текст = СтрокаТЗ.Штрихкод;
работает только когда две строки записаны имеено в таком порядке. По одной и в другм порядке не рабатает, или показывает не адекватные значения или пустые ячейки.

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