|
УНФ 3.0 Программно заполнять серийные номера при создании документа | ☑ | ||
---|---|---|---|---|
0
AlbusAt
naïve
08.12.24
✎
12:24
|
УНФ 3.0.8.109
При создании документа Сборка Запасов на основании Заказа на производство, я тащу из документа Перемещение серийные номера номенклатуры (1 позиция), получаю документ по связанным документам. Записываю серийные номера в новый документ в процедуре ЗаполнитьПоЗаказуНаПроизводство, серийные номера встают, как строка, но статус горит красным. При проведении документа движений по серийный номерам нету. Заполняю серийные номера так: Если ЗначениеЗаполнено(ПеремещениеЗапасов) Тогда ТЧПеремещениеЗапасы = ПеремещениеЗапасов.Запасы; Для Каждого Тек Из ТЧПеремещениеЗапасы Цикл Если ЗначениеЗаполнено(Тек.СерииНоменклатуры) Тогда Отбор = Новый Структура(); Отбор.Вставить("Номенклатура", Тек.Номенклатура); СтрокаЗапасыСборка = Запасы.НайтиСтроки(Отбор)[0]; Если ЗначениеЗаполнено(СтрокаЗапасыСборка) Тогда СтрокаЗапасыСборка.СерииНоменклатуры = Тек.СерииНоменклатуры; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; Понимаю что надо записать ещё в тч серийных номеров (наверное), но не знаю как это сделать. Нужна помощь |
|||
1
Звездец
08.12.24
✎
10:22
|
ну а если загуглить: программное заполнение табличной части?
|
|||
2
Волшебник
08.12.24
✎
12:21
|
(0) Почему поле называется "СерииНоменклатуры", хотя там хранится ОДНА серия?
|
|||
3
AlvlSpb
08.12.24
✎
22:15
|
(2) Потому что в поле не хранятся серии, там хранится статус серий (заполнено или нет) и меняется картинка, тип поля - строка. (0) А серии хранятся в ТЧ серии, которая обязательна для заполнения. Ключ связи - номер строки в ТЧ запасы. Ну и при программном заполнении надо предусмотреть проверку и изменение статуса в строке ТЧ Запасы. Смотри по коду,там одна или две функции общих модулей
|
|||
4
Рэйв
09.12.24
✎
05:50
|
(2)Потому что там планируется много.Неужели не понятно?:-)
|
|||
5
Рэйв
09.12.24
✎
10:29
|
Я как-то сам в далекой молодости назвал измерение ТОВАРЫ :-))
|
|||
6
Волшебник
09.12.24
✎
10:29
|
(3) Если там хранится "статус серии", то поле надо назвать "СтатусСерии".
|
|||
7
AlbusAt
naïve
15.12.24
✎
16:41
|
Решение проблемы: в ТЧ документа СерииНоменклатуры добавить ваши данные
Если ЗначениеЗаполнено(ПеремещениеЗапасов) Тогда ТЧПеремещениеЗапасы = ПеремещениеЗапасов.Запасы; Для Каждого Тек Из ТЧПеремещениеЗапасы Цикл Если ЗначениеЗаполнено(Тек.СерииНоменклатуры) Тогда Отбор = Новый Структура(); Отбор.Вставить("Номенклатура", Тек.Номенклатура); СтрокаЗапасыСборка = Запасы.НайтиСтроки(Отбор)[0]; Если ЗначениеЗаполнено(СтрокаЗапасыСборка) Тогда СтрокаЗапасыСборка.СерииНоменклатуры = Тек.СерииНоменклатуры; СерииНоменклатурыМассив = СтрРазделить(СтрокаЗапасыСборка.СерииНоменклатуры, ";"); Для Каждого Стр Из СерииНоменклатурыМассив Цикл СтрокаСерииНоменклатуры = СерииНоменклатуры.Добавить(); СтрокаСерииНоменклатуры.КлючСвязи = СтрокаЗапасыСборка.КлючСвязи; СтрокаСерииНоменклатуры.Количество = 1; СтрокаСерииНоменклатуры.Серия = Справочники.СерииНоменклатуры.НайтиПоНаименованию(СокрЛП(Стр)); КонецЦикла; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; |
|||
8
Волшебник
16.12.24
✎
09:41
|
(7) Это плохое решение хранить список элементов в строке через ";"
Нарушение третьей нормальной формы базы данных |
|||
9
AlbusAt
naïve
16.12.24
✎
15:26
|
(8) А как вы предлагаете решать эту проблему? Если в документах серийные номера записываются в строку через ";"
|
|||
10
Волшебник
16.12.24
✎
15:30
|
(9) Я предлагаю не записывать серийные номера через ";"
|
|||
11
AlbusAt
naïve
17.12.24
✎
17:53
|
(10) Это стандартная запись в УНФ, типовой функционал, а не дописанный
|
|||
12
Волшебник
17.12.24
✎
20:34
|
(11) и чо? Верх совершенства что ли?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |