Как закрыть График поступления товаров

1. demONx7 30.07.19 09:37 Сейчас в теме
Всем привет.
1С:Управление торговлей (11.4.6.188) + 1С:CRM (3.0.14.11)

Есть документ заказ поставщику. Заказ имеет статус "Подтвержден" и уже закрыт.
На основании заказа создано Приобретение товаров и услуг. Оба документа проведенные. Но в регистре сведений ГрафикПоступленияТоваров запись по приобретению все еще висит.

Как удалить эту самую запись? Я так понимаю что она должна удаляться при проведении приобретения, но такого не происходит. Поиск в гугле ни к чему толковому не привел. Прошу помощи.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. YannikAlx 28 30.07.19 10:24 Сейчас в теме
А у заказа нет статуса Выполнен случайно?
3. demONx7 30.07.19 10:49 Сейчас в теме
(2)Статусы в заказе только эти: На согласовании / Согласован / Подтвержден.
4. demONx7 31.07.19 09:02 Сейчас в теме
Анализ кода привел к тому, что пришлось перевыбрать "Распоряжение" в Приходном ордере на товары.
Далее при проведении приходника и приобретения запись регистра удалилась.
max_zhilin; Xershi; +2 Ответить
5. Xershi 1535 21.04.20 10:31 Сейчас в теме
Столкнулись с аналогичной проблемой документы прихода с 10.2019 у нас:
1. Приобретение товаров и услуг,
2. Заказ поставщику,
3. Заказ на сборку (разборку)
Думаю и другие регистраторы по регистру накопления "ГрафикПоступленияТоваров".
Примерно тогда мы обновились на УТ+CRM для РБ 3.0.11.19.
Аналог УТ 11.4.1.
Как итог движения документами сделали остатки. А остатки не покрыты.
6. Xershi 1535 21.04.20 10:46 Сейчас в теме
Похоже нашли визуально в чем проблема.
1. Склад не сделал ордер на что пришло по приобретении.
2. По заказу поставщика товар еще не весь оформили в приобретении.
3. Не указали соглашение в документах.

У нас в основном 3 пункт. Создадим соглашение и перепроведем.
Отпишу по результатам.
7. Xershi 1535 21.04.20 11:03 Сейчас в теме
4. В заказе поставщика без назначения, а приобретении и ордере с назначением. Условно это 2 пункт.
8. Xershi 1535 23.04.20 12:45 Сейчас в теме
Вот решение проблемы:
1. Подтвердить ордером, что товар пришел. Если товар потеряли, то до оформить и составить недостачу.
2. Если товар еще не пришел, то пропускаем. Если товар не придет, то уменьшить количество в заказе и провести заказ.
3. Создать соглашение для поставщика и указать его во всех документах.
4. Указать назначение в заказе поставщика и перепровести документы.
9. Xershi 1535 23.04.20 12:47 Сейчас в теме
По 3 пункту у нас возникли проблемы.
1. Меняем соглашение в заказе поставщика групповой обработкой, руками слетают реквизиты, приходится многое менять.
2. Меняем соглашение в приобретении товаров и услуг групповой обработкой, руками слетают реквизиты, приходится многое менять.
3. Меняем признак "ЗакрыватьГрафикПоступления" в приходных ордерах на документ из п. 2 групповой обработкой, но лучше перевыбрать руками распоряжением, главное указать корректное, т.к. выполняется такой код:
&НаСервере
Процедура РаспоряжениеВыборСервер(СкладскаяОперация)
	Если СкладскаяОперация <> Объект.СкладскаяОперация Тогда
		Объект.СкладскаяОперация = СкладскаяОперация;
		ПодготовитьЗаполнитьУстановитьВидимостьСерий();
	КонецЕсли;
	
	Если ЗначениеЗаполнено(Объект.Распоряжение) Тогда
		Если ТипЗнч(Объект.Распоряжение) = Тип("СправочникСсылка.СоглашенияСКлиентами")
			Или  ТипЗнч(Объект.Распоряжение) = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда
			Объект.ЗакрыватьГрафикПоступления = Истина;
		Иначе
			
			Запрос = Новый Запрос;
			Запрос.Текст =
			"ВЫБРАТЬ ПЕРВЫЕ 1
			|	ДвижениеТоваров.Распоряжение КАК Распоряжение
			|ИЗ
			|	РегистрНакопления.ДвижениеТоваров КАК ДвижениеТоваров
			|ГДЕ
			|	ДвижениеТоваров.Распоряжение = &Распоряжение";
			Запрос.УстановитьПараметр("Распоряжение", Объект.Распоряжение);
			
			Объект.ЗакрыватьГрафикПоступления = Не Запрос.Выполнить().Пустой();
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры
Показать
10. Xershi 1535 23.04.20 12:50 Сейчас в теме
(9) вначале я перевыбрал не то распоряжением и запрос приходного ордера не формировал движений по "РегистрНакопления.ДвижениеТоваров".
После того как указал верное распоряжение признак "ЗакрыватьГрафикПоступления" стал истина, движения сформировались.
И тогда регистр накопления "ГрафикПоступленияТоваров" очистился по записям указанным в ордере.
Если несколько ордеров, нужно повторить для каждого.
11. serega_sun 26.11.20 06:13 Сейчас в теме
Сегодня наткнулся на эту фишку в УТ 11. Хотелось бы спросить у фирмы 1С, но скорее всего ответа не получу, поэтому вопрос сообществу:
При отмене проведения одного документа появляются движения по регистру у другого документа.
Это теперь считается хорошим стилем в программировании? Нужно опять перестраивать перестраивать своё сознание?
На прежних версиях был определенный шаблон изучения поведения системы. Провел документ - посмотрел какие движения появились, отменил проведение - посмотрел какие исчезли. Теперь при проведении может произойти всё что угодно.
12. Pawlick 10 04.12.20 18:01 Сейчас в теме
(11)
Теперь при проведении может произойти всё что угодно.


Вы подняли очень больной, и к сожалению, практически риторический вопрос (учитывая то, как в 1С поставлен вопрос обратной связи)...

На мой взгляд БСП - это вообще пример нехорошего стиля в программировании, а ERP - худшая конфигурация за всю историю 1С.
13. user1464234 04.12.20 18:16 Сейчас в теме
Кстати, да. Просмотр движений с появлением платформы 8.0 это атавизм. Но с клиппера /фокспро или даже акцесса/sql переходить на нее проще,чем с 7.7, поскольку 7.7 это полное отключение мозгов и разработки на уровне рефлексов как у собаки Павлова.
14. Pawlick 10 04.12.20 18:47 Сейчас в теме
Коллеги вот решение (суть его уже описана выше, я предлагаю развернутое решение):

Система обеспечения товарами в ERP подобных конфигурациях сложна и запутана. Разораться в ней - тема для диссертации. Стремясь сделать ее универсальной, компания 1С сделала ее практически не употребимой.

Один 100500 регистров в этом страшном оркестре - регистр накопления ГрафикПоступленияТоваров.

В моей организации используется:
- соглашения и договора;
- клиенты и контрагенты;
- несколько складов;
- два из них ордерные;
- используются статусы заказов (всех: Покупателей, Поставщикам, Перемещения);
- порядок ввода документов установлен "Заказ - Ордер - Накладная";
- ордер создается Менеджером.

При таких настройках логика проведения грубо следующая (подчеркиваю, именно при таких. За другие сказать не могу):
1 При проведении Заказа поставщику в регистр накопления ГрафикПоступленияТоваров делаются приходные движения;
2 При проведении Приходного ордера по этому заказу движения сделанные заказом удаляются;

п. 2 выполняется только в случае, если в Приходном ордере включен скрытый (его нет на форме) флаг ЗакрыватьГрафикПоступления. Флаг выставляется в Истину при перевыборе распоряжения, в процедуре РаспоряжениеВыборСервер(СкладскаяОперация) модуля формы Приходного ордера.

Проблема в том, что эта процедура не вызывается при создании нового документа (что является очередной ошибкой в EPR), поэтому для нового документа флаг всегда по умолчанию Ложь, что и вызывает симптомы описанные выше.

Решение следующее:
1 Если у Вас конфигурация находится на поддержке - после создания ордера перевыбирать распоряжение (заказ поставщику) (это решение описано выше)
2 Если конфигурация снята с поддержки, то в модуль формы необходимо добавить процедуру

&НаСервере
Процедура УстановитьЗакрыватьГрафикПоступления()
	
	Если ЗначениеЗаполнено(Объект.Распоряжение) Тогда
		Если ТипЗнч(Объект.Распоряжение) = Тип("СправочникСсылка.СоглашенияСКлиентами")
			Или  ТипЗнч(Объект.Распоряжение) = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда
			Объект.ЗакрыватьГрафикПоступления = Истина;
		Иначе
			
			УстановитьПривилегированныйРежим(Истина);
			
			Запрос = Новый Запрос;
			Запрос.Текст =
			"ВЫБРАТЬ ПЕРВЫЕ 1
			|	ДвижениеТоваров.Распоряжение КАК Распоряжение
			|ИЗ
			|	РегистрНакопления.ДвижениеТоваров КАК ДвижениеТоваров
			|ГДЕ
			|	ДвижениеТоваров.Распоряжение = &Распоряжение";
			Запрос.УстановитьПараметр("Распоряжение", Объект.Распоряжение);
			
			Объект.ЗакрыватьГрафикПоступления = Не Запрос.Выполнить().Пустой();
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры
Показать


и вызвать ее в процедуре ПриСозданииНаСервере

Напоследок руки чешутся поглумиться над разработчиками ERP:

В конфигурации распоряжением называется документ-основание Расходного или Приходного ордера (Заказ поставщику в данном случае).

Но суть ордерного учета заключается в том, что офис создает Расходные или Приходные ордера на склад, а склад отгружает или принимает товары, указанные в ордерах.

Вот выдержка из вики:
"Распоряжение - это акт или приказ, имеющий обязательную силу для лиц, которым оно адресовано".

т.е Офис создаёт "Распоряжения" складу принят или отгрузить что то, а склад эти распоряжения выполняет.

Таким образом гораздо логичнее было бы распоряжением назвать Ордер, а заказ покупателя (в контексте ордера) - основанием этого ордера.

Но как я у же говорил, с логикой в ERP не густо...
15. Azamatex 13 12.08.21 09:20 Сейчас в теме
(14) На самом деле "ЗакрыватьГрафикПоступления" заполняется если создавать документ через АРМ Приемки, но при условии, что вы указали в сообщении.
16. Zubenko_m 03.12.21 20:55 Сейчас в теме
(14)
(15) сделал все как написали, но при установленном флаге ЗакрыватьГрафикПоступления все равно закрытия не случилось, какие еще варианты?
17. klaus38 20.11.23 21:12 Сейчас в теме
Если кто будет искать. В модуле менеджера, регистра ДвижениеТоваров. Процедура: РассчитатьИтогиРегистраОстаткиТоваровПоГрафику
Очень тугой механизм. У меня ордера старые, еще до включения ячеистого склада. В ордерах нет помещения и перепроводить их, возможности нет. Удалил записи регистра и заплатку написал, чтобы движение не записывалось в график, по старым документам.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот