заполнение реквизита документа реквизитом другого документа
Есть имеющиеся Док1 и Док2, Док1 создается на основании Док2. У них есть общий Реквизит. Если Реквизит у Док1 не заполнен, то должен быть заполнен из Реквизита Док2. док1 затем перезаписывается, а не перепроводится. это будет обработка с командой заполнения.
есть ли какие нибудь похожие наброски кода?
есть ли какие нибудь похожие наброски кода?
По теме из базы знаний
- Автоматическое создание документов реализации и поступлений для УТ 10.3
- Обработка заполнения табличной части документа "Инвентаризация товаров на складе" для Управления Торговлей 10.3
- Гибкая настройка контроля ввода документов,проведения,отмены проведения
- Дозагрузка кадровых документов в ЗУП 3.1 из ЗУП 2.5 в интерактивном режиме (загрузка в документы списком)
- Документ на документ. Автоматическое создание связанных документов
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(7) Ну да, то есть если вы хотите изменить в Док1. То с него и начинайте.
Берете все документы в цикле. По документы ищете док2. Смотрите заполнен ли реквизит или нет. Далее изменяете если нужно. У вас ведь документы же связаны Док1 и док2 по реквизиту ДокументОснования
Берете все документы в цикле. По документы ищете док2. Смотрите заполнен ли реквизит или нет. Далее изменяете если нужно. У вас ведь документы же связаны Док1 и док2 по реквизиту ДокументОснования
(8)
Правдоподобно ли?
Правдоподобно ли?
Процедура СформироватьНаСервере();
[1C-CODE]Процедура СформироватьНаСервере();
ПТУ = Документы.ПоступлениеТоваровУслуг;
Проект =Документы.ПоступлениеТоваровУслуг.НайтиПоРеквизиту(Проект);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЗаказПоставщику.Проект
|ИЗ
| Документ.ЗаказПоставщику КАК ЗаказПоставщику";
ТЗ = Запрос.Выполнить().Выбрать();
Для каждого Проект Из ПТУ Цикл
Если Не ЗначениеЗаполнено(Проект) Тогда
Для каждого Документ Из ТЗ Цикл
ЗаполнитьЗначенияСвойств(ТЗ, Документ)
КонецЦикла;
КонецЕсли;
ПТУ.Записать(РежимЗаписиДокумента.Запись)
КонецЦикла;
КонецПроцедуры
Показать
(9) как то не много запутано, вот тут у вас ошибка Проект =Документы.ПоступлениеТоваровУслуг.НайтиПоРеквизиту(Проект). Нужно как то так
Для каждого Проект Из ПТУ Цикл - вот тут ошибка должна быть.
Сам смысл какой? Берете документы поступление товаров и услуг. (в нем есть поле проект). Далее обходите эти документы. Далее ищете данный проект в заказе поставщика? как то напутано все.
Правльно ли я понимаю вам нужно так. На основании заказа поставщика сделан документ поступление товаров и услуг. Если в постпулении не заполнен проект. то его нужно заполнить из заказа поставщику?
СсылкаНаПроект =Документы.ПоступлениеТоваровУслуг.НайтиПоРеквизиту("ИмяРеквизитаПроект", Проект);
Для каждого Проект Из ПТУ Цикл - вот тут ошибка должна быть.
Сам смысл какой? Берете документы поступление товаров и услуг. (в нем есть поле проект). Далее обходите эти документы. Далее ищете данный проект в заказе поставщика? как то напутано все.
Правльно ли я понимаю вам нужно так. На основании заказа поставщика сделан документ поступление товаров и услуг. Если в постпулении не заполнен проект. то его нужно заполнить из заказа поставщику?
(11) Получается
ДокументыПоступления = Документы.ПоступленияТоваровУслуг.Выбрать();
Пока ДокументыПоступления.Следующий Цикл
// находим заказ поставщика - либо по связному реквизиту либо запроса. Как вам удобнее.
// пишу как будто найден заказ
ЗаказПоставщику = КакойЗаказаКоторыйНашлиПоСвзяи;
Если Не ЗначениеЗаполнено(ДокументПоступления.Проект) И ЗначениеЗаполнение(ЗаказПоставщику.Проект) Тогда
ДокументОбъект = ДокументПоступления.ПолучитьОбъект();
ДокументОбъект.Проект = ЗаказПоставщику.Проект;
ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли
Конеццикла
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот