0
eklient
16.01.17
✎
23:10
|
Прошу помощи
Условия задачки:
- каждая номенклатура уникальна
таково условие
Задача:
Документ приходной накладной. Требуется после заполнения табличной части при проведении документа создавать номенклатуру по данным строк.
Делаю след. образом:
Документ.ПриходнаяНакладная: МодульОбъекта
дополняю процедуру "Процедура ОбработкаПроведения(Отказ, Режим)"
в конец прописал:
Для Каждого СтрокаТЧ Из Товары Цикл
ЭлементыОтбора = Новый Структура("Код,Наименование,ТипНоменклатуры,ВидНоменклатуры,Состояние,База,Склад,Номер",
СтрокаТЧ.Код,СтрокаТЧ.Номенклатура,СтрокаТЧ.Товар,СтрокаТЧ.ВидНоменклатуры,СтрокаТЧ.Состояние,СтрокаТЧ.База,Склад,СтрокаТЧ.Номер,);
ОбъектЗаписи = Справочники.Номенклатура.СоздатьЭлемент();
ОбъектЗаписи.Заполнить(ЭлементыОтбора);
КонецЦикла;
Реквизит "Склад" не из таблицы а из шапки поэтому обращение прямое и он общий.
Пробовал так же заполнять не значениями из табличной части а непосредственно ссылками и УникальныйИдентификатор, и так тоже Перечисления.ТипыНоменклатуры.Товар для перечислений. Однако не заполняет созданный объект.
В данный момент проверяю не из-за того ли что справочник иерархический, и мне нужно при создании обращаться к объекту так:
ОбъектЗаписи = Справочники.Номенклатура.Группа.СоздатьЭлемент();
подскажите кто сталкивался с подобной задачей.. пока я экспериментирую с вариантами
|
|
2
eklient
17.01.17
✎
01:41
|
Да, спасибо большое, это именно то.
Свойства заполнились но элемент справочника не записало...
Как отловить в чем ошибка?
возможон какие-то дополнительные свойства объекта из обязательных необходимо заполнить?
|
|
5
eklient
17.01.17
✎
02:13
|
нашел почему не писал)) забыл .Записать();
"никогда не делайте запись объектов при проведении"
совершенно согласен, делалось в попыхах и это моя первая конфигурация, делаю по видеоурокам, и в инструкциях видел что рекомендовано сделать на регистре, но пока не разобрался как)
в принципе весь нюанс в следующем:
есть три реквизита у номенклатуры комбинация которых должна быть уникальна.
в данный момент реализовано так:
в .Код программно записывается Реквизит1+Реквизит2+Реквизит3
включен контроль уникальности в справочнике
Реквизит1 и Реквизит2 тип строка, Реквизит3 - дата (yyyy)
Все остальные реквизиты это ссылки на справочники и перечисления
в приходной накладной нужно максимально облегчить массовое добавление номенклатуры и упростить до обычной таблицы ввод всех данных (без дополнительных окон создания записей в том или ином справочнике)
|
|
7
i_rodionov
17.01.17
✎
02:26
|
(5) Регистр сведений обеспечивает уникальность комбинации измерений. Если сделать по ним отбор, а потом записывать, то данные перезапишутся. Если отобрать и прочитать, их можно модифицировать и записать
|
|