Запись не верна! Значение поля "Документ поступления" не может быть пустым!

1. user1032515 4 28.11.22 19:14 Сейчас в теме
Всем бодрствующим хорошего дня!
Второй день бьюсь с проблемой:
Программно создаю документ перемещения товаров с одного склада на другой внутри организации (из цеха производства в цех экспедиции).
Комплексная автоматизация 2.5.9.143 Платформа 8.3.22.1704

&НаСервере
Процедура СоздатьПеремещенияНаСервере()
        // Имеется ТЧ на форме обработки
	ТабПеремещений = Объект.ТабВыпуска.Выгрузить();
	ТабПеремещений.Свернуть("Номенклатура,Упаковка","КПередаче");
	ТабПеремещений.Колонки.КПередаче.Имя = "КоличествоУпаковок";
	ТабПеремещений.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
	ТабПеремещений.ЗагрузитьКолонку(ТабПеремещений.ВыгрузитьКолонку("КоличествоУпаковок"),"Количество");
        // Создаю документ перемещения
	ДокПеремещения 								= Документы.ПеремещениеТоваров.СоздатьДокумент();
	ДокПеремещения.Дата							= Объект.ДатаОформления;
	ДокПеремещения.Автор  						= Пользователи.ТекущийПользователь();
	ДокПеремещения.Организация					= Справочники.Организации.НайтиПоРеквизиту("ИНН","XXXXXXXXXX");
	ДокПеремещения.ОрганизацияПолучатель		= ДокПеремещения.Организация;
	ДокПеремещения.СкладОтправитель				= Справочники.Склады.НайтиПоНаименованию(Лев(Объект.Цех,6));
	ДокПеремещения.СкладПолучатель				= Справочники.Склады.НайтиПоНаименованию("Экспедиция "+Лев(Объект.Цех,6));
	ДокПеремещения.Исправление					= Ложь;
	ДокПеремещения.Ответственный				= Пользователи.ТекущийПользователь();
	ДокПеремещения.ВидыЗапасовУказаныВручную	= Ложь;
	ДокПеремещения.ВариантПриемкиТоваров        	= Перечисления.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным;
	ДокПеремещения.ХозяйственнаяОперация        	= Перечисления.ХозяйственныеОперации.ПеремещениеТоваров;
	ДокПеремещения.Статус                       			= Перечисления.СтатусыДвиженияПродукцииИМатериалов.Принято;
	ДокПеремещения.НаправлениеДеятельности      	= Справочники.НаправленияДеятельности.НайтиПоНаименованию("Хлеб");
	ДокПеремещения.ВидЦены                      			= Справочники.ВидыЦен.НайтиПоНаименованию("Плановая");
	ДокПеремещения.Исправление                  			= Ложь;
    ДокПеремещения.ВариантПриемкиТоваров			= Перечисления.ВариантыПриемкиТоваров.МожетПроисходитьБезЗаказовИНакладных;
	ДокПеремещения.ВидыЗапасовУказаныВручную	= Ложь;
	ДокПеремещения.ГлавныйБухгалтер				= ОтветственныеЛицаБП.ОтветственныеЛица(ДокПеремещения.Организация,ДокПеремещения.Дата,Неопределено).ГлавныйБухгалтер;
	ДокПеремещения.Руководитель					= ОтветственныеЛицаБП.ОтветственныеЛица(ДокПеремещения.Организация,ДокПеремещения.Дата,Неопределено).Руководитель;

	ДокПеремещения.Подразделение				= Объект.Цех;
	ДокПеремещения.Записать(РежимЗаписиДокумента.Запись);
		
	Для Каждого Стр Из ТабПеремещений Цикл
		Если Стр.КоличествоУпаковок >0 Тогда
			СтрокаПродукции			= ДокПеремещения.Товары.Добавить();
			ВидыЗапасов				= ДокПеремещения.ВидыЗапасов.Добавить();
			ЗаполнитьЗначенияСвойств(СтрокаПродукции,Стр);
			ВидыЗапасов.ВидЗапасов = Справочники.ВидыЗапасов.НайтиПоНаименованию("Собственный товар; Группа: Продукция; Организация: "+ДокПеремещения.Организация);
			СтрПрод.АналитикаУчетаНоменклатуры 	= Справочники.КлючиАналитикиУчетаНоменклатуры.НайтиПоНаименованию(""+Стр.Номенклатура+";"+ДокПеремещения.СкладОтправитель+"");
			ЗаполнитьЗначенияСвойств(ВидыЗапасов,СтрокаПродукции);
			СтрокаПродукции.ИдентификаторСтроки			= Новый УникальныйИдентификатор();
			ВидыЗапасов.ИдентификаторСтроки				= Новый УникальныйИдентификатор();
		КонецЕсли;
	КонецЦикла;

	ДокПеремещения.Записать(РежимЗаписиДокумента.Проведение);
КонецПроцедуры
Показать


Получаю сообщение системы: "Запись не верна! Значение поля "Документ поступления" не может быть пустым! (Регистр накопления: Товары к поступлению; Номер строки: 1)"
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
5. anton13m 2 29.11.22 16:56 Сейчас в теме
(3)
Дело в реквизите ВариантПриемкиТоваров.
Например, для "РазделенаПоЗаказамИНакладным" в ДокументПоступления подставляется ссылка на текущий документ, для других вариантов в модуле менеджера нужно смотреть
nekiilik1c; yaroslavch; cleaner_it; ANF-BR; Date; +5 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. dehro 5 28.11.22 22:13 Сейчас в теме
Попробуй заполнять строки вызовом типовых функций.
Посмотри, например, на форме документа у поля "Номенклатура" событие "ПриИзменении"
3. user1032515 4 29.11.22 09:42 Сейчас в теме
не помогло, сначала ошибки были со ссылками на несуществующие поля строки ТЧ, т.к. в модуле есть создание структуры, исправил, а после снова эта же ошибка: Значение поля "Документ поступления" не может быть пустым!
Это происходит уже при формировании движений, так вот не могу найти где поставить ссылку на этот создаваемый документ, ведь он является документом прихода для склада получателя.
4. ybatiaev 58 29.11.22 15:30 Сейчас в теме
(3) У меня та же ошибка, но в УТ11.5. Пока решение не нашел. Делаю синхронизацию КД2 с УТ10.3
16. user1524667 14.01.23 11:29 Сейчас в теме
(4) та же самое при обновлениии с УТ11.4 на УТ11.5, получилось как то решить проблему?
5. anton13m 2 29.11.22 16:56 Сейчас в теме
(3)
Дело в реквизите ВариантПриемкиТоваров.
Например, для "РазделенаПоЗаказамИНакладным" в ДокументПоступления подставляется ссылка на текущий документ, для других вариантов в модуле менеджера нужно смотреть
nekiilik1c; yaroslavch; cleaner_it; ANF-BR; Date; +5 Ответить
6. user1032515 4 29.11.22 18:05 Сейчас в теме
(5) Спасибо, это решило проблему ошибки, документ провелся. Правда провелся наполовину, т.е. расход со склада-отправителя есть, а на склад-получатель прихода нет. Это буду дальше копать. А по вопросу ответ на 100%. Скорее всего нужно перед проведением запускать процедуры модуля документа для заполнения типа

СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", ПредыдущиеРеквизитыСтроки.Характеристика);
	СтруктураДействий.Вставить("ПроверитьЗаполнитьУпаковкуПоВладельцу"      , ПредыдущиеРеквизитыСтроки.Упаковка);
	СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
	СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура"));
	СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
	
	ПараметрыУказанияСерий = Новый ФиксированнаяСтруктура(НоменклатураСервер.ПараметрыУказанияСерий(Объект, Документы.ПеремещениеТоваров));
	ПараметрыПроверкиСерий = Новый Структура("Склад, ПараметрыУказанияСерий");
	ПараметрыПроверкиСерий.Склад = Новый Структура("Отправитель, Получатель", ДокПеремещения.СкладОтправитель, ДокПеремещения.СкладПолучатель);
	ПараметрыПроверкиСерий.ПараметрыУказанияСерий = ПараметрыУказанияСерий;
	СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", ПараметрыПроверкиСерий);
	СтруктураДействий.Вставить("ПроверитьЗаполнитьНазначение");
	СтруктураДействий.Вставить("НоменклатураПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
		ЭтаФорма.ИмяФормы, "Товары"));
	КэшированныеЗначения = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
	ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ПредыдущиеРеквизитыСтроки, СтруктураДействий, КэшированныеЗначения);
	ЗаполнитьЗначенияСвойств(СтрПрод,ПредыдущиеРеквизитыСтроки);
Показать
7. ybatiaev 58 30.11.22 08:41 Сейчас в теме
(5)
РазделенаПоЗаказамИНакладным


Так и сделал - не проводится, сменил на "НеРазделенаПоЗаказамИНакладным" -тоже не проводится.
В общем модуле "ПроведениеДокументов" процедура ПровестиДокумент()

рубится на Документ.Движения.Записать();
Вот в движениях смотрел - реально регистратора нет. Копаю в коде, но это жесть :-/
8. anton13m 2 30.11.22 08:47 Сейчас в теме
(7)
А как вы вообще выбираете какие значения устанавливать?
Обычно документ создается и проводится интерактивно, а потом уже у него смотрятся заполненные реквизиты и также заполняются программно. Это намного проще и быстрее, чем копать в коде.
9. ybatiaev 58 30.11.22 08:55 Сейчас в теме
(8) Вот то-то и оно. Устроился на работу. Старые программеры ушли. Мне поставлена задача перевести с УТ10.2(8.1) на УТ 11.5. Вся работа в несколько этапов: Первый этап - УТ10.2(8.1) довел на УТ10.3(8.3) старую платформу нафиг. Второй этап - не нарушая работы на УТ10.3 сделать синхронизацию с УТ11.5 для плавного перехода на неё. Консультантов нет, аналитиков нет. Сказали делай всё сам... ППЦ отношенице к работе.
Вот что могу вычитать - делаю. Вот вопрос в теме от незнания (
10. nomad_irk 71 30.11.22 09:00 Сейчас в теме
(9)вы пошли очень тернистым путем......
переход на 11.х с 10 проще выполнить переносом остатков.
11. ybatiaev 58 30.11.22 09:30 Сейчас в теме
(10) ещё бы кто сразу подсказал как правильно настроить УТ11.5 и как правильнее слить остатки. Так-то можно воспользоваться стандартной перегрузкой, там спрашивают про остатки на дату. Скорее остатки формируются. Но меня просили скинуть все документы. Целая борьба со складами, сейчас более или имения сделал адресное хранение по их письмам. Ещё проблема с номенклатурой. Им удобно в справочнике номенклатур перемещать с папки СКЛАД1 в СКЛАД 2 при перемещении материалов.
Короче было задание до 01.12.2022 сделать. Не успел, точно (
По поводу синхронизации - данный механизм был предложен для мягкого перехода со старой версии. Там дописок много, конфа вскрытая. По этому хотел сразу приучить пользователей пользоваться новыми отчетами. Или, к примеру, надо раньше было, чтобы сразу в поле склад было "СКЛАД№1". ВНИМАНИЕ! Программеры создали для этого новый вид документа. ППЦ, а теперь то надо слить в единое. Но люди привыкли, им удобно. И таких документов не один (
Не скучно...
12. nomad_irk 71 30.11.22 09:46 Сейчас в теме
(11)
Но меня просили скинуть все документы.

Т.е. перенести весь бардак в учете в новую БД?
(11)
Ещё проблема с номенклатурой. Им удобно в справочнике номенклатур перемещать с папки СКЛАД1 в СКЛАД 2 при перемещении материалов.

Святая Корова.........

В общем вы пытаетесь из УТ11.5 сделать УТ10.3.....

На мой взгляд, нужно было инвентаризировать все доработки УТ10 и понять, что из них реально нужно, а что можно забыть как страшный сон, разобраться с косяками учета, выяснит детали и понять, как это учесть при переносе остатков, перетащить остатки по складам/взаиморасчеты и начать вести учет с НГ.
13. ybatiaev 58 30.11.22 09:56 Сейчас в теме
(12)
На мой взгляд, нужно было инвентаризировать все доработки УТ10 и понять, что из них реально нужно, а что можно забыть как страшный сон, разобраться с косяками учета, выяснит детали и понять, как это учесть при переносе остатков, перетащить остатки по складам/взаиморасчеты и начать вести учет с НГ
.

так и сделал сейчас. Пока думаю как свести в головах все документы. Предложения отосланы. Отчеты будут любые, с этим проблем нет сейчас, но стандартные в приоритете. И по всему учет-таки будет именно с нового года уже, всё как по наилучшему сценарию.

P.S. Про "Святую корову" - именно так и есть )))))
19. ANF-BR 07.03.23 21:00 Сейчас в теме
(5)
РазделенаПоЗаказамИНакладным

Спасибо добрый человек, это как раз то что я искал
14. AneJIbcuH 37 30.11.22 20:44 Сейчас в теме
У вас переход с 10.3, а тут просто обновление с 11.4.x на 11.5.x не работает нормально. Обновился и такую же ошибку ловлю с "ВариантПриемкиТоваров". Измерение пустым остается (а это почти в типовой)..
15. BLdiver 10.01.23 20:00 Сейчас в теме
вот что пишет по данным ошибкам 1с. я сделал как написано и пересоздал документ и все пошло

Ошибка 00-00473538
Код ошибки: 00-00473538
Код(ы) обращения: HL-535477
Статус: Отклонена Зарегистрирована: 17.08.2022
Продукт: "1С:Управление торговлей 11"

Описание:
При проведении документов Сборка товаров, Перемещение товаров и других документов, не ялвяющихся документами приемки выходит ошибка:
Запись не верна! Значение поля "Документ поступления" не может быть пустым! (Регистр накопления: Товары к поступлению

Причина неисправления:
В форме НСИ и администрирование - Склад и доставка, видно, что функциональная опция "Оформление поступления доступно" - пуста.
На самом деле она имеет недопустимое значение "Может происходить без заказов и накладных", поэтому не отображается.
Следует установить одно из 2х допустимых значений.
Документы, которые закешировали некорректное значение следует исправить при помощи обработки и перепровести.
17. user1524667 14.01.23 11:32 Сейчас в теме
(15) та же проблема только в склад и доставка все значения стоят верные, может кто подскажет еще варианты решения, заранее спасибо!
18. ybatiaev 58 14.01.23 12:29 Сейчас в теме
(16)
(17) Как я понял то, что мы считаем стоит правильно -на самом деле УТ11 понимает как неверное.
Наилучший вариант создать документ вручную и поиграться реквизитами. У меня на одном складе всё проводилось, ан другом нет, хотя всё идентично в принципе. Заново создал склад и всё поехало.
P.S. то, что пишет там УТ11.5(у меня) в ошибке не всегда соответствует реальной ошибке или не соответствуют выбранным реквизитам. Лично для меня, как для программиста, так писать программы НЕПРИЕМЛЕМО. Сам себя бы не уважал
Оставьте свое сообщение
Вакансии
Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день