Имя: Пароль:
1C
1С v8
Дата запрета редактирования документов
0 igel1969
 
16.03.21
21:56
Здравствуйте!

1С 8.3, УТ 10.3 сильно переписанная

Несколько месяцев назад создал в конфигурации два документа, достаточно простых. Сам момент создания уже не помню, но сегодня пересмотрел все свойства обоих документов - никакой разницы, кроме реквизитов и ТЧ.
Сами документы создавались по ночам с помощью регламентного задания, проведение не требовалось.

Сегодня на каждый документ создал по регистру накопления. Соответственно у документов создал процедуры ОбработкаПроведения в Модуле Объекта.
Также перепроверил оба регистра накопления - никакой разницы, кроме измерений.
Решил провести документы и тут выяснилось, что один документ не обращает внимания на дату запрета и спокойно дает проводить на любую дату, а другой документ дает проводить только в пределах разрешенного периода, т.е. после даты запрета изменения.

Сделал глобальный поиск по всем модулям - нигде эти документы не встречаются.
Проверил как тут советовали Подписку на события ПередЗаписьюДокументаДатаЗапретаРедактирования - там в качестве Источника стоит просто ДокументОбъект, а не какме-то конкретные документы, значит оба должны попадать под эту подписку.

Прям мистика какая-то.

Где еще можно посмотреть?
Мне надо чтобы оба документа можно было редактировать, не глядя на дату запрета.
Я, конечно, могу покопать тут по форумам как это сделать, я видел тут советы как переписать модули для этого.
Но дело в том, что для того документа который уже не реагирует на дату запрета я ничего не переписывал. Почему же второй не дает проводится????
1 m1_1976
 
16.03.21
22:30
там внутри такие проверки могут быть

ПараметрыПроверкиДокумента.Вставить("ЕстьОрганизация",         (МетаданныеДокумента.Реквизиты.Найти("Организация") <> Неопределено));
ПараметрыПроверкиДокумента.Вставить("ЕстьУправленческийУчет",    (МетаданныеДокумента.Реквизиты.Найти("ОтражатьВУправленческомУчете") <> Неопределено));
ПараметрыПроверкиДокумента.Вставить("ЕстьБухгалтерскийУчет",     (МетаданныеДокумента.Реквизиты.Найти("ОтражатьВБухгалтерскомУчете") <> Неопределено));

если у документа нет таких реквизитов - он не проверятеся на дату запрета
2 igel1969
 
16.03.21
22:52
(1) Я это смотрел. Очень странная ситуация - в том документе, который позволяет проводить этот реквизит есть и он - ссылка на Справочник Организации
А вот в том документе, который нельзя провести из-за даты запрета, реквизит с таким наименованием тоже есть, но это уже ссылка на Справочник Контрагенты (мне так надо было).
Вообще не вижу логики, но неужели в этом дело???
А ОтражатьВУправленческомУчете и ОтражатьВБухгалтерскомУчете нет у обоих документов
3 m1_1976
 
16.03.21
23:10
(2) Ну тогда отладчик  в руки и лови в этой процедуре. Она небольшая...
4 Serg_1960
 
17.03.21
00:25
(2) "реквизит с таким наименованием тоже есть, но это уже ссылка на Справочник Контрагенты (мне так надо было)" - обнаружив что есть реквизит Организация, конфигурация ищет дату запрета для этой "организации", не находит и вежливо посылает автора-создателя реквизита "Организация" с типом "Справочник.Контрагенты"...
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн