Даты запрета изменения

26.06.23

Задачи пользователя - Адаптация типовых решений

Понадобилось добавить свои разделы и документы в типовой механизм контроля дат запрета изменения данных. Внятного описания, как это сделать, сходу обнаружить не удалось: статьи в интернете или неполные, или устаревшие. Пришлось читать документацию к БСП. Но и там ждала засада. В итоге разобрался и решил сохранить на будущее, может, кому время сэкономит.

Итак, имеем типовую доработанную конфигурацию УНФ 3.0. Хотим, чтобы пользователи не могли менять в закрытом периоде документы, выгружаемые в бухгалтерию. В то же время, хочется исключить из под запрета такие документы, как складские перемещения и документы производства, т.к. бухгалтерам они вообще неинтересны, а тот же склад хочет править задним числом перемещения регулярно. Кроме того, есть нетиповые документы, которые вообще никак не участвуют в механизме контроля дат и которые тоже хочется контролировать. Благо конфигурация у нас типовая и чтобы все это работало не надо изобретать велосипед, а достаточно слегка модифицировать типовой механизм Даты запрета изменения 

В модуль ДатыЗапретаИзмененияПереопределяемый в процедуре ПриЗаполненииРазделовДатЗапретаИзменения вносим описания новых разделов по аналогии с типовыми.

 
 Добавление описания новых разделов

 

Процедура ПриЗаполненииРазделовДатЗапретаИзменения(Разделы) Экспорт
	
    // ...
    //
	// наши разделы
	Раздел = Разделы.Добавить();
	Раздел.Имя  = "МК_СкладскиеДокументы";
	Раздел.Идентификатор = Новый УникальныйИдентификатор("ea5013a1-13f9-11ee-a63a-ac1f6bb47f39");
	Раздел.Представление = НСтр("ru = 'Документы склада'");  
	Раздел.ТипыОбъектов.Добавить(Тип("СправочникСсылка.Организации"));

	Раздел = Разделы.Добавить();
	Раздел.Имя  = "МК_Производство";
	Раздел.Идентификатор = Новый УникальныйИдентификатор("f4ca61c0-13f9-11ee-a63a-ac1f6bb47f39");
	Раздел.Представление = НСтр("ru = 'Документы производства'"); 
	Раздел.ТипыОбъектов.Добавить(Тип("СправочникСсылка.Организации"));
	
КонецПроцедуры

 

Для получения идентификаторов новых разделов используем конструкцию:

ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.ПолучитьСсылку().УникальныйИдентификатор()

В том же модуле в процедуре ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения описываем состав разделов

 
 Описываем состав разделов
Процедура ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения(ИсточникиДанных)

	ДокументыСПолемОрганизация = Новый Массив;
	ДокументыСПолемОрганизация.Добавить("Документ.АвансовыйОтчет");
    // ...

	// Раздел "Документы склада"
	ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.ОприходованиеЗапасов", "Дата", "МК_СкладскиеДокументы");
	ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.ПеремещениеЗапасов", "Дата", "МК_СкладскиеДокументы");
	ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.ПеремещениеПоЯчейкам", "Дата", "МК_СкладскиеДокументы");
	ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.СписаниеЗапасов", "Дата", "МК_СкладскиеДокументы");
	ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.МК_ПеремещениеПоЯчейкамПеринт", "Дата", "МК_СкладскиеДокументы"); 
	ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.МК_ФиксацияПалета", "Дата", "МК_СкладскиеДокументы"); 
	
	// Раздел "Документы производства"
	ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.МК_КартаЛитья", "Дата", "МК_Производство");
	ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.СборкаЗапасов", "Дата", "МК_Производство");

КонецПроцедуры

 

 

В модуле формы нашего документа в обработчике события ПриЧтенииНаСервере дергаем строку из типового документа:

 
 Код блокирующий форму, если изменение запрещено

 

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	// ...
	ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// ...
КонецПроцедуры

 

 

В подписки на события ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента и ПроверитьДатуЗапретаИзмененияПередУдалением в источники надо добавить объекты наших документов - это добавит проверку на изменение документов не через форму (через форму списка либо вообще программно)

Ну и в завершении надо запустить базу в режиме обновления, чтобы в ПВХ Разделы дат запрета изменения сгенерировались новые разделы. (спасибо dhurricane за комментарий)

Даты запрета изменения закрытый период

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4738    10    5    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3160    4    0    

20

Каждому менеджеру нужен свой Excel

Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    3905    dimanich70    11    

14

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1862    dimanich70    8    

14

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

Адаптация типовых решений Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Доработка типового отчета "Связанные документы" позволяет просто и быстро расширять состав объектов для построения структуры подчиненности документов, используя объекты основной конфигурации и любых расширений.

1 стартмани

27.10.2023    2154    19    avmartynov    14    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dhurricane 27.06.23 09:38 Сейчас в теме
Здесь есть тонкость в получении идентификатора раздела.
В инструкции БСП указан способ получения идентификатора для нового раздела даты запрета, а не существующего. Предполагается, что вы создаете описание раздела в переопределяемом модуле, а затем запускаете обновление ИБ, в результате чего новый раздел в соответствии с описанием появится в ПВХ.
gamletspb; defini; skyadmin; awk; kser87; ubnkfl; +6 Ответить
2. gamletspb 101 30.06.23 15:44 Сейчас в теме
(1)
а затем запускаете обновление ИБ
имеется ввиду это?
3. dhurricane 01.07.23 18:51 Сейчас в теме
(2) Да, это один из способов.
4. tamepjlah 3 06.07.23 10:54 Сейчас в теме
У себя в ЗУПе делал через расширение, не снимая типовые объекты с поддерки. Судя по коду - отличия только в названиях процедур
https://infostart.ru/1c/tools/1359919/
5. oldy 2 23.01.24 15:14 Сейчас в теме
А что делать, если мне в БП 3.0 надо разрешить изменять только мои добавленные в расширении документы, которые формируют проводки (по забалансовым, также добавленным мной счетам)? Дело в том, что в БП по дате запрета запрещаются изменения в во всем регистре бухгалтерии Хозрасчетный, и мои документы, про которые подсистема ДатыЗапретаИзменения вообще ничего не знает, не проводятся в закрытых периодах именно по этой причине.
Оставьте свое сообщение