Заполнение документа Перемещение на основании документа Реализация товаров
Заполняю документ Перемещение ТМЦ на основании документа Реализация товаров. Конфигурация Комплексный учет для бюджетных учреждений. Документ перемещение записывается, но не проводится, в чем причина?
&НаСервере
Процедура ЗаполнитьНаСервере()
Объект.СписокРасходных.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияУслуг.Ссылка КАК Накладная,
| РеализацияУслуг.ДатаСоздания КАК ДатаСоздания,
| РеализацияУслуг.ДатаРедактирования КАК ДатаРедактирования,
| РеализацияУслуг.МестоХранения КАК МестоХранения,
| РеализацияУслуг.Договор КАК Договор,
| РеализацияУслуг.Контрагент КАК Контрагент,
| РеализацияУслуг.Организация КАК Организация,
| РеализацияУслуг.Дата КАК Дата
|ИЗ
| Документ.РеализацияУслуг КАК РеализацияУслуг
|ГДЕ
| РеализацияУслуг.МестоХранения = &СкладКуда
| И РеализацияУслуг.Проведен = ИСТИНА";
Запрос.УстановитьПараметр("СкладКуда", Объект.СкладКуда);
Запр = Запрос.Выполнить();
ТЗ = Запр.Выгрузить();
Для Каждого Строка Из ТЗ Цикл
нов = Объект.СписокРасходных.Добавить();
ЗаполнитьЗначенияСвойств(нов,Строка);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура СформироватьПеремещенияНаСервере()
Для Каждого СтрокаД Из Объект.СписокРасходных Цикл
НовДокПеремещ = Документы.ПеремещениеТМЦ.СоздатьДокумент();
НовДокПеремещ.Заполнить(СтрокаД.Накладная);
НовДокПеремещ.УстановитьНовыйНомер();
НовДокПеремещ.Дата = СтрокаД.Накладная.Дата - 1;
НовДокПеремещ.Организация = СтрокаД.Накладная.Организация;
НовДокПеремещ.МестоХранения = Объект.СкладОткуда;
НовДокПеремещ.МестоХраненияНазначение = Объект.СкладКуда;
НовДокПеремещ.Сдал = СтрокаД.Накладная.Сдал;
НовДокПеремещ.Принял = СтрокаД.Накладная.Принял;
НовДокПеремещ.Комментарий = "Перемещение ТМЦ с" + НачалоДня(Объект.НачПериода)+ " по "+КонецДня(Объект.КонПериода);
Если Не ЗначениеЗаполнено(НовДокПеремещ.ВидОперации) Тогда
НовДокПеремещ.ВидОперации = Перечисления.ОперацииПеремещениеТМЦ.Перемещение;
КонецЕсли;
НовДокПеремещ.ПользовательСоздание = Пользователи.ТекущийПользователь();
Для Каждого СтрокаТМЦ Из СтрокаД.Накладная.ТМЦ Цикл
НовСтрока = НовДокПеремещ.ТМЦ.Добавить();
ЗаполнитьЗначенияСвойств(НовСтрока, СтрокаТМЦ);
НовСтрока.Контрагент = СтрокаД.Накладная.Контрагент;
НовСтрока.СчетУчета = СтрокаТМЦ.СчетУчета;
КонецЦикла;
Попытка
Если НовДокПеремещ.Проведен Тогда
НовДокПеремещ.Записать(РежимЗаписиДокумента.Проведение);
Иначе
НовДокПеремещ.Записать(РежимЗаписиДокумента.Запись);
Конецесли;
Исключение
Отказ = ИСТИНА;
Сообщить("Не удалось записать документ ""Перемещение тмц"" по причине:");
Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки
КонецЦикла;
Сообщить("Проведен документ: "+НовДокПеремещ);
Объект.СписокРасходных.Очистить();
КонецПроцедуры
ПоказатьПрикрепленные файлы:
ЗаполнениеДокументаПеремещениеТоваров.epf
По теме из базы знаний
- Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Переработка давальческого сырья в 1С:КА
- Заполнение табличной части "Товары" для конфигурации "Управление торговлей 11.4"
- Создание и заполнение документа Реализация товаров на основании Перемещения товаров
- ERP 2. Развитие функционала по обеспечению. Продолжительность резервов по товарам на складах и дополнительная аналитика
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Как бы логично
НовДокПеремещ.Проведен - а как он в истине будет?
Если НовДокПеремещ.Проведен Тогда
НовДокПеремещ.Записать(РежимЗаписиДокумента.Проведение);
Иначе
НовДокПеремещ.Записать(РежимЗаписиДокумента.Запись);
Конецесли;
НовДокПеремещ.Проведен - а как он в истине будет?
(3) Верно вам подсказывают, откуда у созданного документа будет Проведен = Истина, если вы его ещё не провели? нужно так:
Попытка
НовДокПеремещ.Записать(РежимЗаписиДокумента.Проведение);
Исключение
НовДокПеремещ.Записать(РежимЗаписиДокумента.Запись); // если нужно записать документ, если нет, то удалите это строку
Отказ = ИСТИНА;
Сообщить("Не удалось записать документ ""Перемещение тмц"" по причине:");
Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот