Не перепровести документы (1 квартал)
Перенесла документы, сводить квартал - пошли проблемы с резервами и оказалось, что не все приходы помещены на склад. Склад неордерный. Решила провести программно, ошибка для всех поступлений:
Поступление проводится, если отвязать заказ. Отменила проведение квартала, написала процедуру, отвязывающую заказ. Но по-видимости неправильно, не проходит, фактически ничего не отвязывается (я присваиваю об.ЗаказКлиента = Документы.ЗаказКлиента.ПустаяСсылка() )
Подскажите, что не так? Как программно отвязать заказ от поступления?
Может как-то не отвязывая можно? Может можно контроль отключить?
Оформлено больше чем указано в распоряжении Заказ поставщику номер ... дата...
Поступление проводится, если отвязать заказ. Отменила проведение квартала, написала процедуру, отвязывающую заказ. Но по-видимости неправильно, не проходит, фактически ничего не отвязывается (я присваиваю об.ЗаказКлиента = Документы.ЗаказКлиента.ПустаяСсылка() )
&НаСервереБезКонтекста
Процедура ПроводимРеалНаСервере(ДоДаты)
ДатаДляОтбора = Дата(2020,1,7);
пока ДатаДляОтбора < ДоДаты цикл
запрос = новый запрос;
запрос.текст = "ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка,
| РеализацияТоваровУслуг.ЗаказКлиента КАК ЗаказКлиента,
| РеализацияТоваровУслуг.Сделка КАК Сделка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.ПометкаУдаления = ЛОЖЬ
| И РеализацияТоваровУслуг.Проведен = ЛОЖЬ
| И РеализацияТоваровУслуг.Дата МЕЖДУ &Дата1 И &Дата2";
запрос.УстановитьПараметр("Дата1", НачалоДня(ДатаДляОтбора));
запрос.УстановитьПараметр("Дата2", КонецДня(ДатаДляОтбора));
рез = запрос.Выполнить();
если не рез.Пустой() тогда
Выб = рез.Выбрать();
пока выб.Следующий() цикл
Об = выб.Ссылка.ПолучитьОбъект();
Сообщить(Об.Ссылка);
попытка
об.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
Исключение
СохрЗаказ = об.ЗаказКлиента;
об.ЗаказКлиента = Документы.ЗаказКлиента.ПустаяСсылка();
об.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
об.ЗаказКлиента =СохрЗаказ;
об.Записать();
КонецПопытки;
конеццикла;
КонецЕсли;
ДатаДляОтбора = ДатаДляОтбора + 60*60*24;
конеццикла;
КонецПроцедуры
ПоказатьПодскажите, что не так? Как программно отвязать заказ от поступления?
Может как-то не отвязывая можно? Может можно контроль отключить?
По теме из базы знаний
- Формирование годовой отчетности при изменении типа учреждения в течение года
- Расчёт себестоимости в 1С: УПП 1.3. Инструкция по подготовке
- Групповое перепроведение документов (с отбором) (1С 8.3 Управляемые формы)
- Счета-фактуры за период до ввода начальных остатков. Корректировочные и не только. Часть первая
- С чего начать внедрение автотестов
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(3) отключила все: контроль по организации, остатков по складу.
Контроль идет, так как есть ссылка на заказы. Я уже по коду посмотрела, для того, чтобы документ провелся, мне пришлось убирать ссылку на заказ в шапке, в строках:
Глобально убираю ссылки на заказы, перепровожу. Выяснила, что резервы сели криво, заказы не закрываются, мрак...
Контроль идет, так как есть ссылка на заказы. Я уже по коду посмотрела, для того, чтобы документ провелся, мне пришлось убирать ссылку на заказ в шапке, в строках:
&НаСервереБезКонтекста
Процедура ПроводимПостНаСервере(ДоДаты)
ДатаДляОтбора = Дата(2020,1,7);
пока ДатаДляОтбора < ДоДаты цикл
зПриобр = новый запрос;
зПриобр.текст = "ВЫБРАТЬ
| ПриобретениеТоваровУслуг.Ссылка КАК Ссылка,
| ПриобретениеТоваровУслуг.ЗаказПоставщику КАК ЗаказПоставщику
|ИЗ
| Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг
|ГДЕ
| ПриобретениеТоваровУслуг.ПометкаУдаления = ЛОЖЬ
| И ПриобретениеТоваровУслуг.Дата МЕЖДУ &Дата1 И &Дата2
| И ПриобретениеТоваровУслуг.Проведен = ЛОЖЬ";
зПриобр.УстановитьПараметр("Дата1", НачалоДня(ДатаДляОтбора));
зПриобр.УстановитьПараметр("Дата2", КонецДня(ДатаДляОтбора));
рПриобр = зПриобр.Выполнить();
если не рПриобр.Пустой() тогда
Выб1 = рПриобр.Выбрать();
пока Выб1.Следующий() цикл
Об = Выб1.Ссылка.ПолучитьОбъект();
Сообщить(Об.Ссылка);
ЕСЛИ ЗначениеЗаполнено(об.ЗаказПоставщику) ТОГДА
СохрЗаказ = об.ЗаказПоставщику;
об.ПоступлениеПоЗаказам = ложь;
об.ЗаказПоставщику = Неопределено;
Об.РасшифровкаПлатежа.Очистить();
Для каждого ТекСтрТов из Об.РасшифровкаПлатежа цикл
Об.РасшифровкаПлатежа.Удалить(ТекСтрТов);
КонецЦикла;
для каждОГО стр из об.товары цикл
стр.ЗаказПоставщику = Неопределено;
стр.КодСтроки = 0;
КонецЦикла;
об.Записать();
КОНЕЦЕСЛИ;
конеццикла;
КонецЕсли;
ДатаДляОтбора = ДатаДляОтбора + 60*60*24;
конеццикла;
КонецПроцедуры
ПоказатьГлобально убираю ссылки на заказы, перепровожу. Выяснила, что резервы сели криво, заказы не закрываются, мрак...
Спрашиваю про поступления, а код вставила с реализации...
Нужный код:
Нужный код:
&НаСервереБезКонтекста
Процедура ПроводимПостНаСервере(ДоДаты)
ДатаДляОтбора = Дата(2020,1,7);
пока ДатаДляОтбора < ДоДаты цикл
//сообщить(ДатаДляОтбора);
зПриобр = новый запрос;
зПриобр.текст = "ВЫБРАТЬ
| ПриобретениеТоваровУслуг.Ссылка КАК Ссылка,
| ПриобретениеТоваровУслуг.ЗаказПоставщику КАК ЗаказПоставщику
|ИЗ
| Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг
|ГДЕ
| ПриобретениеТоваровУслуг.ПометкаУдаления = ЛОЖЬ
| И ПриобретениеТоваровУслуг.Дата МЕЖДУ &Дата1 И &Дата2
| И ПриобретениеТоваровУслуг.Проведен = ЛОЖЬ";
зПриобр.УстановитьПараметр("Дата1", НачалоДня(ДатаДляОтбора));
зПриобр.УстановитьПараметр("Дата2", КонецДня(ДатаДляОтбора));
рПриобр = зПриобр.Выполнить();
если не рПриобр.Пустой() тогда
Выб1 = рПриобр.Выбрать();
пока Выб1.Следующий() цикл
Об = Выб1.Ссылка.ПолучитьОбъект();
Сообщить(Об.Ссылка);
попытка
об.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
Исключение
СохрЗаказ = об.ЗаказПоставщику;
об.ЗаказПоставщику = Документы.ЗаказПоставщику.ПустаяСсылка();
об.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
об.ЗаказПоставщику =СохрЗаказ;
об.Записать();
КонецПопытки;
конеццикла;
КонецЕсли;
ДатаДляОтбора = ДатаДляОтбора + 60*60*24;
конеццикла;
КонецПроцедуры
Показать
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)