Конвертация данных 2.1. Создается пустой документ при "Отказ = Истина"
Добрый день!
В обработчике ПКО "После загрузки" документа пишу "Отказ = Истина", не смотря на это, документ создается абсолютно пустой, единственное, что заполнено - номер и дата документа. По логике документ, естественно, создаваться не должен. "Объект.Ссылка" пустая до самого конца обработчика ПКО "После загрузки". В обработчике документ программно не записывается.
В правилах обмена два документа и подчиненные им объекты. Не нашел ничего ссылающегося на документ с "отказом", даже в программном коде закомментировал любые ссылки на этот документ. Для эксперимента ставил галочку для второго документа "Не выгружать объекты свойств источника по ссылкам". Но пустой документ продолжает создаваться.
В чем может быть проблема?
В обработчике ПКО "После загрузки" документа пишу "Отказ = Истина", не смотря на это, документ создается абсолютно пустой, единственное, что заполнено - номер и дата документа. По логике документ, естественно, создаваться не должен. "Объект.Ссылка" пустая до самого конца обработчика ПКО "После загрузки". В обработчике документ программно не записывается.
В правилах обмена два документа и подчиненные им объекты. Не нашел ничего ссылающегося на документ с "отказом", даже в программном коде закомментировал любые ссылки на этот документ. Для эксперимента ставил галочку для второго документа "Не выгружать объекты свойств источника по ссылкам". Но пустой документ продолжает создаваться.
В чем может быть проблема?
По теме из базы знаний
- Механизмы и транспорт обмена данными. Пример создания в КД 2.1 правил обмена данными ЗУП 2.5 -> БП 3.0. Выгрузка ведомостей и банковских счетов. Передача параметров обмена из Источника в Приемник. ВыгрузитьПоПравилу(). ПередатьОдинПараметрВПриемник().
- Пример создания в КД 2.1 правил выгрузки данных регистра «Лицевые счета работников» из ЗУП 2.5 в справочник «Банковские счета» БП 3.0. Подробно, ясно и просто.
- Пример переноса справочников, документов и движений через Эксель и "Конвертацию данных 2" из оптовой учетной системы 1С 7.7 Комплексной 4.2 и розничной учетной системы Рарус Торговый комплекс -> в 1С 8.3 ЕРП 2.4 (расширение и дополнительные реквизиты)
- Конвертация данных 2. Использование исходящих и входящих данных. Свойство "Получить из входящих данных"
- Обмен по правилам Конвертации данных 2.1 для ERP, КА, УТ 11, БП 3, ЗУП 3, Розница 2.3
Найденные решения
ИТОГ:
То что протестировано и проверено:
1. Если объект выгружается через ПСК, то "Отказ = Истина" в ЛЮБОМ обработчике Загрузки в ПКО, на которое ссылается ПКС создает пустой объект (В моем случае счет).
2. Если объект выгружается напрямую через ПКО, то "Отказ = Истина" в ЛЮБОМ обработчике Загрузки в ПКО предотвращает создание объекта.
3. Для решения проблемы пункта 1 нужно поставить галочку у ПКО, которое создает пустой объект "При переносе объекта по ссылке НЕ создавать новый объект, а только переносить ссылку".
В ПКО "После загрузки":
1 Вариант. С использованием типовой процедуры из БП 3.0. (Минус: будет выводить сообщения для всех документов попавшие в закрытый период, в том числе те, которые выгружаются и есть в базе приемника и ничего с этим не поделать. Плюс: анализ вхождения в закрытый период происходит для каждого документа).
2. Вариант. Получить например в обработчике "Перед загрузкой данных" Дату закрытого периода, поместить в параметр "ДатаЗапретаИзменения" и работать с параметром. (Минус: если будут сложные закрытия периода, то такой вариант не подойдет. Плюс: Можно вывести сообщения только для документов которые вновь добавляются).
Я выбрал 2 вариант.
То что протестировано и проверено:
1. Если объект выгружается через ПСК, то "Отказ = Истина" в ЛЮБОМ обработчике Загрузки в ПКО, на которое ссылается ПКС создает пустой объект (В моем случае счет).
2. Если объект выгружается напрямую через ПКО, то "Отказ = Истина" в ЛЮБОМ обработчике Загрузки в ПКО предотвращает создание объекта.
3. Для решения проблемы пункта 1 нужно поставить галочку у ПКО, которое создает пустой объект "При переносе объекта по ссылке НЕ создавать новый объект, а только переносить ссылку".
В ПКО "После загрузки":
1 Вариант. С использованием типовой процедуры из БП 3.0. (Минус: будет выводить сообщения для всех документов попавшие в закрытый период, в том числе те, которые выгружаются и есть в базе приемника и ничего с этим не поделать. Плюс: анализ вхождения в закрытый период происходит для каждого документа).
ДатыЗапретаИзменения.ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента(Объект, Отказ, Истина, Истина);
2. Вариант. Получить например в обработчике "Перед загрузкой данных" Дату закрытого периода, поместить в параметр "ДатаЗапретаИзменения" и работать с параметром. (Минус: если будут сложные закрытия периода, то такой вариант не подойдет. Плюс: Можно вывести сообщения только для документов которые вновь добавляются).
Если ЗначениеЗаполнено(Параметры.ДатаЗапретаИзменения) И Объект.Дата <= Параметры.ДатаЗапретаИзменения Тогда
Отказ = Истина;
Если НЕ ОбъектНайден Тогда
Сообщить("Счет " + Строка(Объект.Номер) + " от " + Строка(Объект.Дата) + " находится в закрытом периоде (" + Строка(Формат(Параметры.ДатаЗапретаИзменения,"ДФ=dd.MM.yyyy")) + "). Счет не создан!!!!!!!!!!!!!!!!");
КонецЕсли;
КонецЕсли;
Я выбрал 2 вариант.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Это изменение типовых/написанных кем то другим правила или же Вы сами с нуля пишите их?
Возможно есть несколько ПКО, также смотрите на запись документа, если стоит отказ, но далее есть объект.записать(), то отказ не имеет смысла, все равно будет записан.
Еще возможно еще где то выгружаются эти данные после выгрузки другого объекта.
Галка "Не выгружать объекты свойств источника по ссылкам", означает, что будет выгружена только ссылка (номер и дата), а остальное нет. То есть в любом случае создаст пустой документ/справочник.
Возможно есть несколько ПКО, также смотрите на запись документа, если стоит отказ, но далее есть объект.записать(), то отказ не имеет смысла, все равно будет записан.
Еще возможно еще где то выгружаются эти данные после выгрузки другого объекта.
Галка "Не выгружать объекты свойств источника по ссылкам", означает, что будет выгружена только ссылка (номер и дата), а остальное нет. То есть в любом случае создаст пустой документ/справочник.
(6) Это написанные кем-то правила.
Галку "Не выгружать объекты свойств источника по ссылкам" ставил не в ПКО проблемного документа, а в ПКО других объектов, которые потенциально могли бы ссылаться на этот документ, что бы если есть ссылка на проблемный документ, то его не создавало. Но, как я написал выше, это не помогло.
Галку "Не выгружать объекты свойств источника по ссылкам" ставил не в ПКО проблемного документа, а в ПКО других объектов, которые потенциально могли бы ссылаться на этот документ, что бы если есть ссылка на проблемный документ, то его не создавало. Но, как я написал выше, это не помогло.
Можно каким-то образом удалить документ После загрузки? При использовании метода Объект.Удалить() выдало ошибку "Ошибка при вызове метода контекста (Удалить): Элемент не выбран!". В принципе и логично, потому что Объект.Ссылка пустая.
по идее механизм приемника (БП 3.0) сам обыгрывает ситуацию. Если документ попадает в закрытый период, то выдается сообщение и документ не загружается. Но при этом процесс загрузки стопорится, остальные документы не загружаются. А нужно что бы загрузка продолжалась.
Вот код обработчика после загрузки:
Выводит сообщения такого вида, при этом сам документ создается и пустой как писал выше:
Счет СК000003538 от 18.12.2018 14:27:29 находится в закрытом периоде (31.12.2018). Счет не создан!!!!!!!!!!!!!!!!
Если ОбъектНайден И Ссылка.Дата < Дата("20180101") Тогда
Отказ = Истина;
КонецЕсли;
Если (ЗначениеЗаполнено(Параметры.ДатаЗапретаИзменения) И Объект.Дата <= Параметры.ДатаЗапретаИзменения)
ИЛИ (ЗначениеЗаполнено(Параметры.ДатаЗапретаИзменения) И ОбъектНайден И Ссылка.Дата <= Параметры.ДатаЗапретаИзменения)
Тогда
Сообщить("Счет " + Строка(Объект.Номер) + " от " + Строка(Объект.Дата) + " находится в закрытом периоде (" + Строка(Формат(Параметры.ДатаЗапретаИзменения,"ДФ=dd.MM.yyyy")) + "). Счет не создан!!!!!!!!!!!!!!!!");
Отказ = Истина;
КонецЕсли;
//Сообщить("ОбъектНомер: " + Строка(Объект.Номер)
// + " ОбъектДата: " + Строка(Объект.Дата)
// + " Объект найден: " + ОбъектНайден
// + ?(ОбъектНайден," СсылкаНомер: " + Строка(Ссылка.Номер) + " СсылкаДата: " + Строка(Ссылка.Дата),""));
Если НЕ Отказ Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДоговорыКонтрагентов.Ссылка
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Владелец = &Контрагент
| И ДоговорыКонтрагентов.Организация = &Организация
| И ДоговорыКонтрагентов.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)";
Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);
Запрос.УстановитьПараметр("Организация", Объект.Организация);
Выборка = Запрос.Выполнить().Выбрать();
КоличествоДоговоров = Выборка.Количество();
Если КоличествоДоговоров = 1 Тогда
Выборка.Следующий();
Объект.ДоговорКонтрагента = Выборка.Ссылка;
ИначеЕсли КоличествоДоговоров = 0 Тогда
НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
НовыйДоговор.ВалютаВзаиморасчетов = Константы.ВалютаРегламентированногоУчета.Получить();
НовыйДоговор.Владелец = Объект.Контрагент;
НовыйДоговор.Организация = Объект.Организация;
НовыйДоговор.Наименование = "Основной договор с покупателем";
НовыйДоговор.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
НовыйДоговор.Записать();
Объект.ДоговорКонтрагента = НовыйДоговор.Ссылка;
КонецЕсли;
Объект.Записать();
//Сообщить("Записан");
КонецЕсли;
ПоказатьВыводит сообщения такого вида, при этом сам документ создается и пустой как писал выше:
Счет СК000003538 от 18.12.2018 14:27:29 находится в закрытом периоде (31.12.2018). Счет не создан!!!!!!!!!!!!!!!!
Делай не ПослеЗагрузки, а ПриЗагрузке. У меня так сделано и проблем нет.
Вот такой код у меня для Бух 3
Если ОбъектНайден Тогда
ДатыЗапретаИзменения.ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента(Объект,НеЗамещатьОбъект,Истина,Истина);
КонецЕсли;
Вот такой код у меня для Бух 3
Если ОбъектНайден Тогда
ДатыЗапретаИзменения.ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента(Объект,НеЗамещатьОбъект,Истина,Истина);
КонецЕсли;
Как я писал выше, есть механизм в конфигурации БП 3.0 который сам проверяет входит ли документ в закрытый период. Если входит, то выводит сообщение и стопорит процесс загрузки. Попытался его обойти вот так, в исключение проваливается, но при этом документ записывается полноценно. В конце обработчика происходит запись в режиме обмена с игнорирование исключений.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДоговорыКонтрагентов.Ссылка
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Владелец = &Контрагент
| И ДоговорыКонтрагентов.Организация = &Организация
| И ДоговорыКонтрагентов.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)";
Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);
Запрос.УстановитьПараметр("Организация", Объект.Организация);
Выборка = Запрос.Выполнить().Выбрать();
КоличествоДоговоров = Выборка.Количество();
Если КоличествоДоговоров = 1 Тогда
Выборка.Следующий();
Объект.ДоговорКонтрагента = Выборка.Ссылка;
ИначеЕсли КоличествоДоговоров = 0 Тогда
НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
НовыйДоговор.ВалютаВзаиморасчетов = Константы.ВалютаРегламентированногоУчета.Получить();
НовыйДоговор.Владелец = Объект.Контрагент;
НовыйДоговор.Организация = Объект.Организация;
НовыйДоговор.Наименование = "Основной договор с покупателем";
НовыйДоговор.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
НовыйДоговор.Записать();
Объект.ДоговорКонтрагента = НовыйДоговор.Ссылка;
КонецЕсли;
Попытка
Объект.Записать();
Исключение
Сообщить("Счет " + Строка(Объект.Номер) + " от " + Строка(Объект.Дата) + " находится в закрытом периоде (" + Строка(Формат(Параметры.ДатаЗапретаИзменения,"ДФ=dd.MM.yyyy")) + "). Счет не создан!!!!!!!!!!!!!!!!");
КонецПопытки;
Показать
Например, следующий код - сам документ не изменяется:
При загрузке:
------------------
После загрузки:
---------------------
Т.е. если объект не был найден, то при любом значении он будет создан и записан
А вот - чтоб не создался - надо в "Перед загрузкой", но там нужна "Дата" загружаемого документа
При загрузке:
------------------
// старая версия объекта
Если Не НеЗамещатьОбъект Тогда
ДокументВЗакрытомПериоде = Ложь;
Выполнить(Алгоритмы.ДокументВЗакрытомПериоде);
Если ДокументВЗакрытомПериоде Тогда
НеЗамещатьОбъект = Истина;
КонецЕсли;
КонецЕсли;
После загрузки:
---------------------
// измененная версия объекта
Если Не Отказ Тогда
ДокументВЗакрытомПериоде = Ложь;
Выполнить(Алгоритмы.ДокументВЗакрытомПериоде);
Если ДокументВЗакрытомПериоде Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Т.е. если объект не был найден, то при любом значении он будет создан и записан
А вот - чтоб не создался - надо в "Перед загрузкой", но там нужна "Дата" загружаемого документа
(17)
"Даты" загружаемого документа нет "Перед загрузкой" к сожалению. Этой темы не было если бы "Перед загрузкой" были доступны те же параметры, что и "После загрузки".
Либо создавать какое-то соответствие Документ - Дата. Но к чему подвязаться не понятно. "Нпп - Число. Уникальный порядковый номер объекта в файле." - единственное, что доступно Перед загрузкой.
А вот - чтоб не создался - надо в "Перед загрузкой", но там нужна "Дата" загружаемого документа
"Даты" загружаемого документа нет "Перед загрузкой" к сожалению. Этой темы не было если бы "Перед загрузкой" были доступны те же параметры, что и "После загрузки".
Либо создавать какое-то соответствие Документ - Дата. Но к чему подвязаться не понятно. "Нпп - Число. Уникальный порядковый номер объекта в файле." - единственное, что доступно Перед загрузкой.
(35) Вам необходимо в отладчике понять какое событие выполняется первым "ПоляПоиска", в котором есть "СвойстваПоиска" (с признаком "Поиск" если не ошибаюсь читаются всегда и первыми из переданных свойств) и "ПараметрыОбъекта", которые можно передать из источника в приемник и читать их, ну а там по "Параметрам" можно - это как вариант - пробуйте...
(52) например ситуация, когда документ в приемнике проверен, проведен и.т.п, т.е. проверка не на закрытый период, а индивидуально. Перед записью необходимо найти в приемнике обьект по переданным данным и проверить какие то свойства. То же самое делает механизм конвертации при поиске объекта, причем поиск может быть достаточно сложным. Логично что отмену загрузки мы делаем после нахождения, но пустая ссылка уже записана, разве не так?
Из справки
ПриЗагрузке:
Объект - Произвольный. Загружаемый, модифицируемый объект, созданный по ссылке или найденный в информационной базе. Если способ идентификации объекта в файле не указан (т.е. отсутствует узел "Ссылка"), то параметр содержит значение Неопределено. В этом случае в обработчике возможна произвольная инициализация загружаемого объекта, в противном случае, объект будет создан автоматически.
ПослеЗагрузке:
Объект - Произвольный - загруженный объект.
Объект - Произвольный. Загружаемый, модифицируемый объект, созданный по ссылке или найденный в информационной базе. Если способ идентификации объекта в файле не указан (т.е. отсутствует узел "Ссылка"), то параметр содержит значение Неопределено. В этом случае в обработчике возможна произвольная инициализация загружаемого объекта, в противном случае, объект будет создан автоматически.
ПослеЗагрузке:
Объект - Произвольный - загруженный объект.
Попробуй понять в какой момент делается запись.
В модуле объекта перед записью выдай сообщение ТекущаяДата()
И то же самое в каждом модуле в правилах. Только задержку в 1 секунду поставь, там можно будет понять, в какой момент был записан документ. Может там вообще не в ПКО это действие происходит, а в свойствах правила, там тоже есть куча обработчиков, в который сие действие может выполнятся.
В модуле объекта перед записью выдай сообщение ТекущаяДата()
И то же самое в каждом модуле в правилах. Только задержку в 1 секунду поставь, там можно будет понять, в какой момент был записан документ. Может там вообще не в ПКО это действие происходит, а в свойствах правила, там тоже есть куча обработчиков, в который сие действие может выполнятся.
(33) Не понял как через Сообщить(ТекущаяДата()) можно понять когда записан документ? Дата документа же не из текущей даты берется. Да и если просто выводить сообщение в обработчиках тоже ничего не понятно. Нужно проверять ссылку. Но это я уже делал. Или я не понял вашей задумки под вечер?
ПКС все проверил.
ПКС все проверил.
(37) Ну можно не дату, а числа или текст. Задумка такова. По сообщениям понять в какой момент записан документ в базу.
То есть перед записью написать Сообщить("Документ Записан")
И выдать другие сообщения при конвертации, то может получится что то такое:
Сообщили перед загрузкой
Сообщили при загрузке
Сообщили Документ записали
Сообщили После загрузки.
То есть перед записью написать Сообщить("Документ Записан")
И выдать другие сообщения при конвертации, то может получится что то такое:
Сообщили перед загрузкой
Сообщили при загрузке
Сообщили Документ записали
Сообщили После загрузки.
(50) Отказ в конвертации это не совсем Отказ в конфигурации базы, задача обмена сопоставить данные, я уже писал выше, если объект выгружен он будет загружен, при любых вариантах, попробуйте присвоить одинавоые номера разным объектам и сдалать поиск по номеру, при обмене появится сообщение что записать нельзя номер не уникален, однако это сообщение из конфигурации базы, которое не будет соответствовать реальности, вы получите 2 объекта с одинаковыми номерами или кодами как угодно
(54) Это я в курсе. Вообще, как это все работает, можно посмотреть в обработке универсальный обмен данными. Так как все действия выполняются там, а это все только текст, который запускается этой самой обработкой.
Но копаться в этой обработке, это надо что бы было "очень надо".
Но копаться в этой обработке, это надо что бы было "очень надо".
(43) я опечатался, ПКО. В конвертации указывается соответствие Один к Одному, ты получил объект из Источника, обмен тебе создает его соответствие в Приемнике, то что ВЫ пытаетесь сделать - нарушить целостность данных. Можно попробовать иначе, в качестве источника использовать набор, или промежуточный объект, хотя легче пересмотреть алгоритм
(48) Возможно, я так глубоко КД еще не копал. Были подобные проблемы, но все они решались.
В моих случая если документ выгружен, то его не надо загружать только в одном случае, если был загружен и находится в закрытом периоде и подобные варианты.
Но такое еще не делал.
В моих случая если документ выгружен, то его не надо загружать только в одном случае, если был загружен и находится в закрытом периоде и подобные варианты.
Но такое еще не делал.
alex_bitti оказался в большей степени прав.
Тесты показали:
Если объект выгружается через ПСК, то "Отказ = Истина" в обработчиках Загрузки в ПКО, на которое ссылается ПКС создает пустой объект (В моем случае счет).
Если объект выгружается напрямую через ПКО, то "Отказ = Истина" в ЛЮБОМ обработчике Загрузки ПКО не создает объект.
Из этого вытекает вопрос: можно ли в обработчиках загрузки ПКО отключить или отменить загрузку ПКС?
Тесты показали:
Если объект выгружается через ПСК, то "Отказ = Истина" в обработчиках Загрузки в ПКО, на которое ссылается ПКС создает пустой объект (В моем случае счет).
Если объект выгружается напрямую через ПКО, то "Отказ = Истина" в ЛЮБОМ обработчике Загрузки ПКО не создает объект.
Из этого вытекает вопрос: можно ли в обработчиках загрузки ПКО отключить или отменить загрузку ПКС?
ИТОГ:
То что протестировано и проверено:
1. Если объект выгружается через ПСК, то "Отказ = Истина" в ЛЮБОМ обработчике Загрузки в ПКО, на которое ссылается ПКС создает пустой объект (В моем случае счет).
2. Если объект выгружается напрямую через ПКО, то "Отказ = Истина" в ЛЮБОМ обработчике Загрузки в ПКО предотвращает создание объекта.
3. Для решения проблемы пункта 1 нужно поставить галочку у ПКО, которое создает пустой объект "При переносе объекта по ссылке НЕ создавать новый объект, а только переносить ссылку".
В ПКО "После загрузки":
1 Вариант. С использованием типовой процедуры из БП 3.0. (Минус: будет выводить сообщения для всех документов попавшие в закрытый период, в том числе те, которые выгружаются и есть в базе приемника и ничего с этим не поделать. Плюс: анализ вхождения в закрытый период происходит для каждого документа).
2. Вариант. Получить например в обработчике "Перед загрузкой данных" Дату закрытого периода, поместить в параметр "ДатаЗапретаИзменения" и работать с параметром. (Минус: если будут сложные закрытия периода, то такой вариант не подойдет. Плюс: Можно вывести сообщения только для документов которые вновь добавляются).
Я выбрал 2 вариант.
То что протестировано и проверено:
1. Если объект выгружается через ПСК, то "Отказ = Истина" в ЛЮБОМ обработчике Загрузки в ПКО, на которое ссылается ПКС создает пустой объект (В моем случае счет).
2. Если объект выгружается напрямую через ПКО, то "Отказ = Истина" в ЛЮБОМ обработчике Загрузки в ПКО предотвращает создание объекта.
3. Для решения проблемы пункта 1 нужно поставить галочку у ПКО, которое создает пустой объект "При переносе объекта по ссылке НЕ создавать новый объект, а только переносить ссылку".
В ПКО "После загрузки":
1 Вариант. С использованием типовой процедуры из БП 3.0. (Минус: будет выводить сообщения для всех документов попавшие в закрытый период, в том числе те, которые выгружаются и есть в базе приемника и ничего с этим не поделать. Плюс: анализ вхождения в закрытый период происходит для каждого документа).
ДатыЗапретаИзменения.ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента(Объект, Отказ, Истина, Истина);
2. Вариант. Получить например в обработчике "Перед загрузкой данных" Дату закрытого периода, поместить в параметр "ДатаЗапретаИзменения" и работать с параметром. (Минус: если будут сложные закрытия периода, то такой вариант не подойдет. Плюс: Можно вывести сообщения только для документов которые вновь добавляются).
Если ЗначениеЗаполнено(Параметры.ДатаЗапретаИзменения) И Объект.Дата <= Параметры.ДатаЗапретаИзменения Тогда
Отказ = Истина;
Если НЕ ОбъектНайден Тогда
Сообщить("Счет " + Строка(Объект.Номер) + " от " + Строка(Объект.Дата) + " находится в закрытом периоде (" + Строка(Формат(Параметры.ДатаЗапретаИзменения,"ДФ=dd.MM.yyyy")) + "). Счет не создан!!!!!!!!!!!!!!!!");
КонецЕсли;
КонецЕсли;
Я выбрал 2 вариант.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот