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