Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 10:01

Ввод на основании

Автор Egor97, 11 мая 2022, 13:45

0 Пользователей и 1 гость просматривают эту тему.

Egor97

Здравствуйте! Подскажите, в чем может быть проблема. Есть документ1, в котором реквизит A заполнен. На основании документа2 создаётся документ1, но реквизит A становится пустым. В чем может быть проблема?

LexaK

1.могут быть разные типы (и которые по умолчанию не могут быть приведены)
2.просто реквизит А не копируется при заполнении
если помогло нажмите: Спасибо!

Egor97

LexaK, а как решается это можете подсказать? Просто я новичок в программировании

LexaK

открыть конфигуратор, проверить типы Реквизитов А в обоих документах,
открыть модуль документа1, проверить процедуру ОбработкаЗаполнения() что там в коде! 
если помогло нажмите: Спасибо!

Egor97

LexaK, реквизита A в документе2 нет. Я так понимаю он должен копироваться из документа1, но почему-то не копируется

LexaK

Цитата: Egor97 от 11 мая 2022, 14:08реквизита A в документе2 нет
если нет реквизита, куда копировать будете?

суть создания на основании примерно такая

НовыйДокумент.РекА = ДокОснования.РекА;//имена реквизитов совпадают
НовыйДокумент.РекБ = ДокОснования.РеквизитБББ; //имена рекв. немного отличаются
НовыйДокумент.РекВ = КакаяТоФункция(ДокОснования.РекА);//какой-то расчет
(при этом должны совпадать или приводиться типы данных)
в новом документе обязательно должен быть реквизит которому планируете присвоить значение
(либо использовать механизм расширений или доп.свойств, куча вариантов) 


если помогло нажмите: Спасибо!

ВанСаныч

LexaK, У меня подобное затмение разума, можно тут спросить? Задача стоит доработать в документе- основании колонку типа булево, чтобы строки в создающемся документе создавались только при Истине. Пытаюсь в цикле создающегося документа (он у меня создан конструктором) прописать проверку и не могу достучатся Объект.Товары.ИмяКолонки. Если пробую по новой конструктор запустить тоже не дает заполнить.

LexaK

ВанСаныч, вариантов может быть множество, вот самый простой

в обработке заполнения, примерно так
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

//передираем строчки документа источника, где есть колонка Отметка, булево
Для каждого лкСтр Из ДанныеЗаполнения.Товары Цикл
Если лкСтр.Отметка Тогда
//есть отметка в строке документа источника,
//добавляем и заполняем строчку в новом документе
ЗаполнитьЗначенияСвойств(Товары.Добавить(), лкСтр);
КонецЕсли;
КонецЦикла;
если помогло нажмите: Спасибо!

ВанСаныч

Спасибо большое я все же не могу понять причину почему нет доступа к вновь созданному столбцу напрямую из этого модуля. Он отличается от других только тем, что он Булево. Даже если пробую НоваяСтрока.... в списке не выпадает
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПоставщику") Тогда
Склад = ДанныеЗаполнения.Склад;
Поставщик = ДанныеЗаполнения.Поставщик;
        СуммаДокумента = ДанныеЗаполнения.СуммаДокумента;
Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл
НоваяСтрока = Товары.Добавить();
НоваяСтрока.Количество = ТекСтрокаТовары.Количество;
НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура;
НоваяСтрока.Сумма = ТекСтрокаТовары.Сумма;
НоваяСтрока.ЦенаПоступления = ТекСтрокаТовары.ЦенаПоступления;
КонецЦикла;
КонецЕсли;

LexaK

ВанСаныч, так вроде правильный у вас код, а что конкретно не работает в нем?
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск