Проверка документов

29.01.24

Расширение, позволяет устанавливать отметки проверки к любому виду документа (Флаг, Ответственный и Время) и запрет редактирования проверенного документа.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
(Устарело) Расширение: Проверка документов (версия 09.04.2023 23:20)
.cfe 52,29Kb
8
8 Скачать (1 SM) Купить за 1 850 руб.
(Устарело) Расширение: Проверка документов (версия 11.04.2023 12:00)
.cfe 52,49Kb
5
5 Скачать (1 SM) Купить за 1 850 руб.
Расширение: Проверка документов (версия 16.04.2023 13:40)
.cfe 55,86Kb
50
50 Скачать (2 SM) Купить за 2 150 руб.

Работает автоматически для всех видов документов

Примечание: Для форм, где есть вызов в ПриСозданииНаСервере() функционала подключаемых команд (в последних продуктах 1С практически везде подключаемые команды вызываются в формах.

 

Рис.1 Колонки [Проверка документов] отображаются в формах списка и выбора документов

 

Рис.2 Включение/Отключение секции с информацией о проверке в меню формы - Ещё - Изменить форму - группы [Проверка документов]

 

Рис.3 Кнопка [Проверка документа] в формах документов

 

Возможности расширения

  • Проверка документа - в форме документа в командной панели нажать кнопку [Проверка документа], картинка изменится с  на , в подсказке кнопки появится {Ответственный и Время}, в открытых списках автоматически обновятся данные в колонках {Флаг, Ответственный и Время}. Документ будет запрещен для редактирования пользователям.
  • Отмена проверки документа - в форме документа в командной панели нажать кнопку [Проверка документа], картинка изменится с  на  , в открытых списках автоматически обновятся данные в колонках {Флаг, Ответственный и Время}. Документ будет разрешен для редактирования пользователям.

Права доступа

Возможность устанавливать и снимать отметку проверки документа имеют пользователи с ролями: Полные права или Добавление изменение проверки документов (Расширение: Проверка документов).

Остальным пользователям должна быть назначена роль Чтение проверки документов (Расширение: Проверка документов), чтобы не возникала ошибка при открытии форм списков. Создаете новый профиль с одной этой ролью, группу доступа и включаете в нее всех пользователей.

Работоспособность расширения

Проверял на платформе 1С:Предприятие 8.3 (8.3.22.1750)

Режим совместимости расширения от версии платформы 8.3.17 и выше.

Работа проверялась в программах:

  • 1С:Управление холдингом, редакция 3.2 (3.2.4.2)
  • 1С:Бухгалтерия предприятия, редакция 3.0 (3.0.132.34) 
  • 1С:Управление торговлей 11 (11.5.8.309)

- будет работать и на других продуктах 1С построенных на основе библиотеки стандартных подсистем. Во всех клиентах: тонкий, толстый, веб.

Работает и для форм, где список не на базе произвольного запроса.

Состав расширения

4 общих модуля, 2 роли, 2 картинки, 1 подписка на событие, 1 регистр сведений

 

 

Примечание (уже не актуально, в новых версиях добавил автоматическую проверку платформы)

В версии платформы 8.3.22 есть возможность связи по УникальномуИдентификатору(...). Я такой код вставил, но он отключен, т.к. многие работают на меньших платформах. Альтернативой стоит связь по номеру и дате. У кого 8.3.22 поставьте связь по уникальному идентификатору в ОбщийМодуль.провдок_Сервер, в следующем коде в первом условии изменив Ложь на Истина.

//Конструируем запрос списка № 2
Если Ложь Тогда  
	//Будет работать когда версия платформы станет 8.3.22, 
	//там есть возможность получать Уникальный идентификатор в запросе
	//или придется затаскивать функционал расширения в конфигурацию  
	ВставкаСоединения = Найти(Форма[ИмяЭлементаСписка].ТекстЗапроса, " КАК " + ПсевдонимОсновнойТаблицы);
	Если ВставкаСоединения > 0 Тогда
		ВставкаСоединения = ВставкаСоединения + СтрДлина(" КАК " + ПсевдонимОсновнойТаблицы);       
		
		Форма[ИмяЭлементаСписка].ТекстЗапроса = Лев(Форма[ИмяЭлементаСписка].ТекстЗапроса, ВставкаСоединения) +  
		" 
		|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.провдок_ПроверенныеДокументы КАК провдок_ПроверенныеДокументы
		|ПО УникальныйИдентификатор(" + ПсевдонимОсновнойТаблицы + ".Ссылка) = провдок_ПроверенныеДокументы.УИОбъекта
		|" + Сред(Форма[ИмяЭлементаСписка].ТекстЗапроса, ВставкаСоединения);
	Иначе
		Форма[ИмяЭлементаСписка].ТекстЗапроса = Форма[ИмяЭлементаСписка].ТекстЗапроса + 
		" 
		|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.провдок_ПроверенныеДокументы КАК провдок_ПроверенныеДокументы
		|ПО УникальныйИдентификатор(" + ПсевдонимОсновнойТаблицы + ".Ссылка) = провдок_ПроверенныеДокументы.УИОбъекта"; 
	КонецЕсли;
Иначе
	//Пока сделаем по номеру и дате  
	ВставкаСоединения = Найти(Форма[ИмяЭлементаСписка].ТекстЗапроса, " КАК " + ПсевдонимОсновнойТаблицы);    
	Если ВставкаСоединения > 0 Тогда
		ВставкаСоединения = ВставкаСоединения + СтрДлина(" КАК " + ПсевдонимОсновнойТаблицы);       
		
		Форма[ИмяЭлементаСписка].ТекстЗапроса = Лев(Форма[ИмяЭлементаСписка].ТекстЗапроса, ВставкаСоединения) + 
		" 
		|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.провдок_ПроверенныеДокументы КАК провдок_ПроверенныеДокументы
		|ПО " + ПсевдонимОсновнойТаблицы + ".Номер = провдок_ПроверенныеДокументы._НомерДокумента 
		| И " + ПсевдонимОсновнойТаблицы + ".Дата = провдок_ПроверенныеДокументы._ДатаДокумента 
		|" + Сред(Форма[ИмяЭлементаСписка].ТекстЗапроса, ВставкаСоединения);    
		
	Иначе        
		Форма[ИмяЭлементаСписка].ТекстЗапроса = Форма[ИмяЭлементаСписка].ТекстЗапроса + 
		" 
		|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.провдок_ПроверенныеДокументы КАК провдок_ПроверенныеДокументы
		|ПО " + ПсевдонимОсновнойТаблицы + ".Номер = провдок_ПроверенныеДокументы._НомерДокумента 
		| И " + ПсевдонимОсновнойТаблицы + ".Дата = провдок_ПроверенныеДокументы._ДатаДокумента";     
	КонецЕсли;
	
КонецЕсли;
 
 Подключение расширения к 1С
 
 Другие публикации автора

 

Версии

 
 (Устарело) Расширение: Проверка документов (версия 09.04.2023 23:20)
 
 Расширение: Проверка документов (версия 11.04.2023 12:00)

1) Выбор синхронизации по Номер и Дата будет автоматом до платформы версии 8.3.22, а после будет по УникальномуИдентификатору. Определение версии платформы выполняется через СистемнаяИнформация.ВерсияПриложения. Спасибо за замечание Владимир Родионов Балабас

2) Проверка на ТипЗнч(Форма) = Тип("УправлемаяФорма") устарела и заменена на Тип("ФормаКлиентскогоПриложения"). Это нововведение начиная с совместимости 8.3.14. Спасибо за замечание Алексей Харламов RocKeR_13

3) Добавлено открытие формы документа на Только просмотр, если стоит проверка, а прав на ее снятие нет (до этого был запрет перед записью). Спасибо за замечание Роман Жданов fatman78

4) Добавлена проверка на модифицированность формы документа перед установкой проверки. Спасибо за замечание Роман Жданов fatman78

 

 
 Расширение: Проверка документов (версия 16.04.2023 13:40)

1) Добавлена возможность настройки списка типов объектов, для которых отображается функционал (кнопки, колонки). В предыдущих версия функционал подключался ко всем документам по умолчанию.

Настройка выполняется в регистре сведений "Подключение объектов (Расширение: Проверка документов)", в который можно перейти из Функций технического специалиста либо по навигационной ссылке e1cib/list/РегистрСведений.провдок_ПодключениеОбъектов

В регистре указываются типы документов, для которых требуется отображать функционал проверки.

 

Проверено на следующих конфигурациях и релизах:

  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.147.25
  • Управление торговлей, редакция 11, релизы 11.5.15.103

проверка документа

См. также

Мероприятия Системный администратор Программист Бизнес-аналитик Руководитель проекта Россия Платные (руб)

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

5500 руб.

06.12.2023    13529    49    0    

365

Мероприятия Россия Платные (руб)

INFOSTART EVENT не только для разработчиков, но и для руководителей отделов разработки, тимлидов и ИТ-директоров

48000 руб.

28.08.2024    4181    279    0    

15

Документооборот и делопроизводство (СЭД) Типовые Бухгалтер Пользователь Руководитель проекта Платформа 1С v8.3 Управленческий учет Платные (руб)

Организуйте правильный оборот документов на вашем предприятии в 1С. Ведение учета и хранения документов. Управление потоками документации между подразделениями. Работа с договорами в компании. Автоматизация процессов подготовки, согласования и подписания документов. Сократите время и объем ошибок с 1С:ДО!

48500 руб.

19.02.2016    108460    118    5    

95

Мероприятия Программист Бизнес-аналитик Руководитель проекта Россия Платные (руб)

Практическая конференция для аналитиков и руководителей проектов 1С 29-31 мая 2025 г. Санкт-Петербург, отель Cosmos Saint-Petersburg Pribaltiyskaya Hotel

36000 руб.

28.08.2024    3596    63    0    

8

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    6842    49    22    

61

Бизнес-аналитик Руководитель проекта Платформа 1С v8.3 Платные (руб)

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

14000 руб.

02.08.2024    1818    31    0    

24

Маркетплейсы Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Оптовая торговля, дистрибуция, логистика Ювелирная промышленность и торговля Фармацевтика, аптеки Легкая промышленность, мода и одежда Пищевая промышленность Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

Расширение позволяет работать из 1С с площадкой Wildberries (Авторизированный сервис Wildberries), Яндекс Маркет (без публикации базы), СберМегамаркет по Схеме FBS и FBO. В FBO реализован механизм сборки коробов по штрих кодам в Wildberries. Отличительная особенность легкая настройка и информативный управленческий учет! Всего через 15 минут вы сможете полностью автоматизировать свои продажи на WB, ЯМ, Мегамаркет и узнать какую итоговую выручку вы получаете за вычетом всех комиссий ВБ, ЯМ, Мегамаркет. Исключите штрафы за продажу товара отсутствующего на складе и не своевременную передачу кодов маркировок, легкий и интуитивно понятный интерфейс позволит перенести всю работу с площадкой в 1С. Есть Демо.

39900 руб.

17.07.2023    11240    54    20    

40
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. evn-zorin 33 10.04.23 13:57 Сейчас в теме
2. aleksey2 88 10.04.23 14:56 Сейчас в теме
Двое могут проверить ?
4. sapervodichka 6910 10.04.23 16:22 Сейчас в теме
3. Vladimir-R 168 10.04.23 15:26 Сейчас в теме
Почему не проверил на версию платформы через СистемнаяИнформация.ВерсияПриложения ?
uriy; sapervodichka; +2 Ответить
5. sapervodichka 6910 10.04.23 16:24 Сейчас в теме
(3) не сообразил так сделать
6. fatman78 20 10.04.23 22:29 Сейчас в теме
(5)Вот за что Дмитрия уважаю, так это в первую очередь за честность. :)
7. fatman78 20 10.04.23 22:58 Сейчас в теме
1. Я правильно понимаю что независимо от версии платформы UID объекта все равно в регистре сохранится при установке запрета?

2. "Документ будет запрещен для редактирования пользователям." - только интерактивное изменение из формы объекта блокируется или программное тоже?

3. Не понятно из видео, в момент нажатия "проверено", не контролируется модифицированность формы?
Т.е. логика работы такая: Проверяющий может за один "проход" поправить/заполнить необходимые реквизиты, жмакнуть "проверено" и выйти с сохранением. А если не сохранить документ при выходе, признак "проверено" у объекта не сбросится?

P.S. Публикацию плюсанул...
sapervodichka; +1 Ответить
8. sapervodichka 6910 10.04.23 23:14 Сейчас в теме
(7) Вот за что я люблю Инфостарт, за отличные чёткие замечания (нигде бесплатно таких мега-тестировщиков не найти).
1) UID, Номер и Дата - в регистре хранятся всегда, вне зависимости от платформы
2) Запрет реализован через подписку на событие ПередЗаписью (открытие проверенного документа на просмотр добавлю)
3) Модифицированность не контролируется (добавлю проверку)

Роман, от души, спасибо
9. fatman78 20 10.04.23 23:23 Сейчас в теме
(8) Кстати да, Инфостарт в этом плане от Мисты разительно отличается. На Мисте если кто-то обратится с вопросом "как мне сделать это?", часто вместо конструктивного ответа над ним сначала постебают, а потом еще и будут отговаривать "это делать"... :)
yaguarrr; smit1c; ixijixi; insurgut; +4 Ответить
24. rpgshnik 3790 17.04.23 11:19 Сейчас в теме
10. DrZombi 301 11.04.23 02:37 Сейчас в теме
Поделка конечно прикольное, но реализация храмает. (Хотя и брать 2 стара, это жадность)

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

Если не вносить изменения на форму из осн. Конфы, то в итоге вы можете получить полностью мертвую форму в расширении. 1с тоже модифицирует свою программу и работу с расширениями :) 😀

Решение простое, программно добавлять ваши элементы на форму. (Судя по описанию, вы нам это не предоставили)
12. insurgut 208 11.04.23 08:10 Сейчас в теме
(10) да тут вроде ни одной формы в расширение не захвачено. О каком изменении формы речь?
sapervodichka; +1 Ответить
13. sapervodichka 6910 11.04.23 08:30 Сейчас в теме
(12) да, верно ни одна форма не менялась, поэтому комментарий (10) вообще мимо. Вот если нужно листинг динамического вывода кнопок и колонок скопировал из расширения.
Если ТипЗнч(Форма) = Тип("УправляемаяФорма") 
		И (Найти(Форма.ИмяФормы, "Документ.") > 0 ИЛИ Найти(Форма.ИмяФормы, "ЖурналДокументов.") > 0) Тогда
		
		Если Найти(Форма.ИмяФормы, ".ФормаДокумента") > 0 Тогда   
			//Выведем кнопку в командную панель документа на форму документа
			Если Форма.Элементы.Найти("Кнопка_провдок_ПроверкаДокумента") = Неопределено Тогда
				// Создадим команду
				Команда = Форма.Команды.Добавить("провдок_ПроверкаДокумента");
				Команда.Действие = "Подключаемый_ВыполнитьКоманду";
				
				Попытка	
					пПроверяемаяСсылка = Форма.Объект.Ссылка;
				Исключение
				КонецПопытки;     
				
				Если ДокументПроверен(пПроверяемаяСсылка) Тогда
					Команда.Картинка = БиблиотекаКартинок.провдок_ЗнакСтопБСП;
				Иначе
					Команда.Картинка = БиблиотекаКартинок.провдок_ЗнакСтопЧБ;
				КонецЕсли;
				
				// Создадим кнопку и привяжем к ней команду          
				Если Форма.Элементы.Найти("ГруппаКнопкиКоманднойПанели") <> Неопределено Тогда
					ЭлементДляРасположенияКнопки = Форма.Элементы.ГруппаКнопкиКоманднойПанели;   
				ИначеЕсли Форма.Элементы.Найти("ГруппаГлобальныеКоманды") <> Неопределено Тогда							
					ЭлементДляРасположенияКнопки = Форма.Элементы.ГруппаГлобальныеКоманды;
				ИначеЕсли Форма.Элементы.Найти("ГруппаКоманднаяПанель") <> Неопределено Тогда
					ЭлементДляРасположенияКнопки = Форма.Элементы.ГруппаКоманднаяПанель;
				ИначеЕсли Форма.Элементы.Найти("ОсновнаяКоманднаяПанель") <> Неопределено Тогда							
					ЭлементДляРасположенияКнопки = Форма.Элементы.ОсновнаяКоманднаяПанель; 	
				Иначе
					ЭлементДляРасположенияКнопки = Форма.Элементы.ФормаКоманднаяПанель;
				КонецЕсли; 
				
				Кнопка = Форма.Элементы.Добавить("Кнопка_провдок_ПроверкаДокумента", Тип("КнопкаФормы"), ЭлементДляРасположенияКнопки);
				
				Если Форма.Элементы.Найти("suplite_Открыть") <> Неопределено Тогда
					Форма.Элементы.Переместить(Кнопка, ЭлементДляРасположенияКнопки, Форма.Элементы.Найти("suplite_Открыть"));
				КонецЕсли;	
				
				Кнопка.Заголовок = "Проверка документа";
				Кнопка.ИмяКоманды = "провдок_ПроверкаДокумента";   
				Кнопка.ОтображениеПодсказки = ОтображениеПодсказки.Всплывающая;
				
				Форма.Команды[Кнопка.ИмяКоманды].Подсказка = ИнформацияОПроверкеДокумента(пПроверяемаяСсылка); 
				
			КонецЕсли; 
			
		ИначеЕсли Найти(Форма.ИмяФормы, ".ФормаСписка") > 0 
			ИЛИ Найти(Форма.ИмяФормы, ".ФормаВыбора") > 0 
			ИЛИ Найти(Форма.ИмяФормы, ".БанковскиеВыписки") > 0 Тогда
			//Выведем колонки с проверкой документа на формы списка и выбора 
			Если Форма.Элементы.Найти("Список") <> Неопределено Тогда  
				
				ИмяЭлементаСписка = "Список";
				
				//Определяем псевдоним основной таблицы
				ПсевдонимОсновнойТаблицы = "";
				
				МассивПсевдонимовОсновнойТаблицы = Новый Массив;
				Если ЗначениеЗаполнено(Форма[ИмяЭлементаСписка].ОсновнаяТаблица) Тогда          
					МассивПсевдонимовОсновнойТаблицы.Добавить(СтрЗаменить(Форма[ИмяЭлементаСписка].ОсновнаяТаблица, ".", ""));
				КонецЕсли;
				МассивПсевдонимовОсновнойТаблицы.Добавить("ДокументСсылка"); 
				МассивПсевдонимовОсновнойТаблицы.Добавить("ДокументТранзакция");
				МассивПсевдонимовОсновнойТаблицы.Добавить("ЖурналДокументовБанковскиеВыписки");
				
				Для Каждого Эл_МассивПсевдонимовОсновнойТаблицы Из МассивПсевдонимовОсновнойТаблицы Цикл
					Если Найти(Форма[ИмяЭлементаСписка].ТекстЗапроса, Эл_МассивПсевдонимовОсновнойТаблицы + ".Ссылка КАК Ссылка,") > 0 Тогда
						ПсевдонимОсновнойТаблицы = Эл_МассивПсевдонимовОсновнойТаблицы;  
						
						//Конструируем запрос списка № 1.1
						Форма[ИмяЭлементаСписка].ТекстЗапроса = СтрЗаменить(Форма[ИмяЭлементаСписка].ТекстЗапроса,
						ПсевдонимОсновнойТаблицы + ".Ссылка КАК Ссылка,",
						ПсевдонимОсновнойТаблицы + ".Ссылка КАК Ссылка, 
						|ЕстьNULL(провдок_ПроверенныеДокументы.Проверен, Ложь) КАК ПроверкаДокументов_ДокументПроверен, 
						|провдок_ПроверенныеДокументы.Ответственный КАК ПроверкаДокументов_Проверил, 
						|провдок_ПроверенныеДокументы.ДатаДействия КАК ПроверкаДокументов_ДатаПроверки,");
						Прервать; 
						
					ИначеЕсли Найти(Форма[ИмяЭлементаСписка].ТекстЗапроса, Эл_МассивПсевдонимовОсновнойТаблицы + ".Ссылка,") > 0 Тогда
						ПсевдонимОсновнойТаблицы = Эл_МассивПсевдонимовОсновнойТаблицы; 
						
						//Конструируем запрос списка № 1.2
						Форма[ИмяЭлементаСписка].ТекстЗапроса = СтрЗаменить(Форма[ИмяЭлементаСписка].ТекстЗапроса,
						ПсевдонимОсновнойТаблицы + ".Ссылка,",
						ПсевдонимОсновнойТаблицы + ".Ссылка, 
						|ЕстьNULL(провдок_ПроверенныеДокументы.Проверен, Ложь) КАК ПроверкаДокументов_ДокументПроверен, 
						|провдок_ПроверенныеДокументы.Ответственный КАК ПроверкаДокументов_Проверил, 
						|провдок_ПроверенныеДокументы.ДатаДействия КАК ПроверкаДокументов_ДатаПроверки,");
						Прервать;
						
					ИначеЕсли Найти(Форма[ИмяЭлементаСписка].ТекстЗапроса, Эл_МассивПсевдонимовОсновнойТаблицы + ".*") > 0 Тогда
						ПсевдонимОсновнойТаблицы = Эл_МассивПсевдонимовОсновнойТаблицы; 
						
						//Конструируем запрос списка № 1.2
						Форма[ИмяЭлементаСписка].ТекстЗапроса = СтрЗаменить(Форма[ИмяЭлементаСписка].ТекстЗапроса,
						ПсевдонимОсновнойТаблицы + "*.*,",
						ПсевдонимОсновнойТаблицы + "*.*, 
						|ЕстьNULL(провдок_ПроверенныеДокументы.Проверен, Ложь) КАК ПроверкаДокументов_ДокументПроверен, 
						|провдок_ПроверенныеДокументы.Ответственный КАК ПроверкаДокументов_Проверил, 
						|провдок_ПроверенныеДокументы.ДатаДействия КАК ПроверкаДокументов_ДатаПроверки,");
						Прервать;	
						
					КонецЕсли;
				КонецЦикла; 
				
				//Доработаем исключения
				Если Не ЗначениеЗаполнено(ПсевдонимОсновнойТаблицы) Тогда
					
					Если Найти(Форма[ИмяЭлементаСписка].ТекстЗапроса, "ЖурналДокументовБанковскиеВыписки") > 0 
						И Найти(Форма[ИмяЭлементаСписка].ТекстЗапроса, "КОНЕЦ КАК Ссылка,") > 0 Тогда
						ПсевдонимОсновнойТаблицы = "ЖурналДокументовБанковскиеВыписки";  
						
						//Конструируем запрос списка № 1.1
						Форма[ИмяЭлементаСписка].ТекстЗапроса = СтрЗаменить(Форма[ИмяЭлементаСписка].ТекстЗапроса,
						"КОНЕЦ КАК Ссылка,",
						"КОНЕЦ КАК Ссылка, 
						|ЕстьNULL(провдок_ПроверенныеДокументы.Проверен, Ложь) КАК ПроверкаДокументов_ДокументПроверен, 
						|провдок_ПроверенныеДокументы.Ответственный КАК ПроверкаДокументов_Проверил, 
						|провдок_ПроверенныеДокументы.ДатаДействия КАК ПроверкаДокументов_ДатаПроверки,");
					КонецЕсли;
					
				КонецЕсли;
				
				Если ЗначениеЗаполнено(ПсевдонимОсновнойТаблицы) Тогда 

					//Конструируем запрос списка № 2
					Если Ложь Тогда  
						//Будет работать когда версия платформы станет 8.3.22, 
						//там есть возможность получать Уникальный идентификатор в запросе
						//или придется затаскивать функционал расширения в конфигурацию  
						ВставкаСоединения = Найти(Форма[ИмяЭлементаСписка].ТекстЗапроса, " КАК " + ПсевдонимОсновнойТаблицы);
						Если ВставкаСоединения > 0 Тогда
							ВставкаСоединения = ВставкаСоединения + СтрДлина(" КАК " + ПсевдонимОсновнойТаблицы);       
							
							Форма[ИмяЭлементаСписка].ТекстЗапроса = Лев(Форма[ИмяЭлементаСписка].ТекстЗапроса, ВставкаСоединения) +  
							" 
							|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.провдок_ПроверенныеДокументы КАК провдок_ПроверенныеДокументы
							|ПО УникальныйИдентификатор(" + ПсевдонимОсновнойТаблицы + ".Ссылка) = провдок_ПроверенныеДокументы.УИОбъекта
							|" + Сред(Форма[ИмяЭлементаСписка].ТекстЗапроса, ВставкаСоединения);
						Иначе
							Форма[ИмяЭлементаСписка].ТекстЗапроса = Форма[ИмяЭлементаСписка].ТекстЗапроса + 
							" 
							|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.провдок_ПроверенныеДокументы КАК провдок_ПроверенныеДокументы
							|ПО УникальныйИдентификатор(" + ПсевдонимОсновнойТаблицы + ".Ссылка) = провдок_ПроверенныеДокументы.УИОбъекта"; 
						КонецЕсли;
					Иначе
						//Пока сделаем по номеру и дате  
						ВставкаСоединения = Найти(Форма[ИмяЭлементаСписка].ТекстЗапроса, " КАК " + ПсевдонимОсновнойТаблицы);    
						Если ВставкаСоединения > 0 Тогда
							ВставкаСоединения = ВставкаСоединения + СтрДлина(" КАК " + ПсевдонимОсновнойТаблицы);       
							
							Форма[ИмяЭлементаСписка].ТекстЗапроса = Лев(Форма[ИмяЭлементаСписка].ТекстЗапроса, ВставкаСоединения) + 
							" 
							|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.провдок_ПроверенныеДокументы КАК провдок_ПроверенныеДокументы
							|ПО " + ПсевдонимОсновнойТаблицы + ".Номер = провдок_ПроверенныеДокументы._НомерДокумента 
							| И " + ПсевдонимОсновнойТаблицы + ".Дата = провдок_ПроверенныеДокументы._ДатаДокумента 
							|" + Сред(Форма[ИмяЭлементаСписка].ТекстЗапроса, ВставкаСоединения);    
							
						Иначе        
							Форма[ИмяЭлементаСписка].ТекстЗапроса = Форма[ИмяЭлементаСписка].ТекстЗапроса + 
							" 
							|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.провдок_ПроверенныеДокументы КАК провдок_ПроверенныеДокументы
							|ПО " + ПсевдонимОсновнойТаблицы + ".Номер = провдок_ПроверенныеДокументы._НомерДокумента 
							| И " + ПсевдонимОсновнойТаблицы + ".Дата = провдок_ПроверенныеДокументы._ДатаДокумента";     
						КонецЕсли;
						
					КонецЕсли;  
					
					ГруппаКолонок = ДобавитьГруппуФормы(Форма, Форма.Элементы[ИмяЭлементаСписка], "провдок_Группа_ПроверкаДокументов", "Проверка документов", ВидГруппыФормы.ГруппаКолонок);
					ГруппаКолонок.Группировка = ГруппировкаКолонок.ВЯчейке;

					э_провдок_Проверен = ДобавитьПолеФлажка(Форма, ГруппаКолонок, "провдок_Проверен", "Список.ПроверкаДокументов_ДокументПроверен", НСтр("ru='Документ проверен'"));
					э_провдок_Ответственный = ДобавитьПолеВвода(Форма, ГруппаКолонок, "провдок_Ответственный", "Список.ПроверкаДокументов_Проверил", НСтр("ru='Проверил'"));
					э_провдок_ДатаДействия = ДобавитьПолеВвода(Форма, ГруппаКолонок, "провдок_ДатаДействия", "Список.ПроверкаДокументов_ДатаПроверки", НСтр("ru='Дата проверки'"));
					
					э_провдок_Проверен.КартинкаШапки = БиблиотекаКартинок.провдок_ЗнакСтопБСП;	        
					э_провдок_Проверен.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
					э_провдок_Проверен.Подсказка = "Проверен";            
					э_провдок_Ответственный.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
					э_провдок_ДатаДействия.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
				КонецЕсли;
			КонецЕсли;
			
		КонецЕсли;	  
		
	КонецЕсли;
Показать
shu_vol; insurgut; +2 Ответить
14. RocKeR_13 1366 12.04.23 09:30 Сейчас в теме
(13)
Если ТипЗнч(Форма) = Тип("УправляемаяФорма")

В режиме совместимости 8.3.14 и выше нужно использовать
Тип("ФормаКлиентскогоПриложения")
sapervodichka; +1 Ответить
15. sapervodichka 6910 12.04.23 10:03 Сейчас в теме
(14) спасибо, за инфу (я так понял пока и старый тип работает, но в будущем надо будет поменять)
16. RocKeR_13 1366 12.04.23 10:06 Сейчас в теме
(15) Надо проверить: насколько помню, в 8.3.14 тип остался, но проверка
ТипЗнч(Форма) = Тип("УправляемаяФорма")
уже вернет Ложь, так как тип-то будет ФормаКлиентскогоПриложения
17. sapervodichka 6910 12.04.23 10:14 Сейчас в теме
(16) можешь не проверять, у меня совместимость 8.3.17 и Тип("УправляемаяФорма") норм работает (видео в доказательство)
RocKeR_13; +1 Ответить
18. RocKeR_13 1366 12.04.23 10:27 Сейчас в теме
(17) Возможно это было на какой-то из промежуточных платформ: совершенно точно помню, что тоже в расширении программно модифицировал формы и после обновления проверка ТипЗнч(Форма) = Тип("УправляемаяФорма") стала возвращать Ложь, из-за чего на форме отвалились все доработки - переводил все на Тип("ФормаКлиентскогоПриложения")
sapervodichka; +1 Ответить
11. DrZombi 301 11.04.23 02:44 Сейчас в теме
(9) все куда проще, тут есть тоже самое.
Просто на мисте этим стали злоупотреблять, и просить сделать, а не научиться.

Уловите разницу, в том что получить знание и что бы вместо вас выполнили, не одно и то же :)

И инфо старт не дает готовое решение, даже тут вам в буду щем придется допиливать и вникать, а как оно работает :)
19. sapervodichka 6910 12.04.23 17:28 Сейчас в теме
Новая версия
Расширение: Проверка документов (версия 11.04.2023 12:00)
1) Выбор синхронизации по Номер и Дата будет автоматом до платформы версии 8.3.22, а после будет по УникальномуИдентификатору. Определение версии платформы выполняется через СистемнаяИнформация.ВерсияПриложения. Спасибо за замечание Владимир Родионов Балабас

2) Проверка на ТипЗнч(Форма) = Тип("УправлемаяФорма") устарела и заменена на Тип("ФормаКлиентскогоПриложения"). Это нововведение начиная с совместимости 8.3.14. Спасибо за замечание Алексей Харламов RocKeR_13

3) Добавлено открытие формы документа на Только просмотр, если стоит проверка, а прав на ее снятие нет (до этого был запрет перед записью). Спасибо за замечание Роман Жданов fatman78

4) Добавлена проверка на модифицированность формы документа перед установкой проверки. Спасибо за замечание Роман Жданов fatman78
20. SK-TRIAL 47 15.04.23 10:49 Сейчас в теме
Добрый день.
Планируете для справочников расширять функционал?
Особенно актуально для контрагентов и договоров!

Да многим и номенклатуру захочется "закрыть" от изменений
21. sapervodichka 6910 16.04.23 10:15 Сейчас в теме
(20) замечательная идея, попробую сегодня сделать и опубликовать
22. sapervodichka 6910 17.04.23 01:18 Сейчас в теме
(20) сделал, вероятно завтра опубликуют, ссылку потом сюда прикреплю
23. sapervodichka 6910 17.04.23 10:41 Сейчас в теме
25. Vinzor 107 01.05.23 13:37 Сейчас в теме
Огромный респект автору за это.
Меня пользователи-бухи как раз просили в ЗУПе закрыть возможность изменения "Данных для расчета зарплаты", созданные менеджерами, если они проверены бухгалтерами.
Я почти закончил писать локальную проверку через механизм программно добавляемой в документ команды, которая попеременно при исполнении прописывает / очищает дополнительный реквизит документа "Проверено", тип строка, в ней дата и ФИО того, кто проверил.
Контроль - если ограниченный пользователь (проверка по роли) открывает документ, в котором значение допреквизита заполнено, он открывается ему так, что все значимые элементы формы не доступны.
Но тут увидел публикацию уважаемого Дмитрия, скачал, посмотрел, очень нравится.
Теперь на распутье: то ли своё доделать, то ли от Дмитрия приспособить ? :) :) :)
27. npolavochkina 27.09.23 09:16 Сейчас в теме
(25) Еще есть третий вариант. Можно использовать появившийся в ЗУП механизм "Процессы обработки документов". Реализовал в нем проверку и согласование табеля с запретом на редактирование если проверка пройдена за полчаса без внесение изменений в конфу вообще.
26. iLonmaks 15 06.06.23 12:49 Сейчас в теме
Разработчику
Было бы хорошо так же добавить гибкость , например если в организации несколько организаций\складов и например хочется установить подобную проверку только для определенного склада\организации..
например если хочу что бы проверялись все реализации определенного склада только определенным сотрудником .
28. user2050357 21.02.24 12:14 Сейчас в теме
При попытке установить на УНФ 3.0 выдает ошибку:
"Ошибка применения расширения конфигурации: Значение контролируемого свойства ОбъектРасширяемойКонфигурации у объекта Язык.Русский не совпадает со значением в расширяемой конфигурации"
Подскажите, пожалуйста, как обойти?
29. muzikant 19.04.24 10:13 Сейчас в теме
Будет работать на 8.3.24.1467 и апрельском релизе БП 3.0.151.27?
30. user2100129 28.08.24 20:27 Сейчас в теме
На 8.3.25.1286 УТ 11.5.12.256 не работает вообще. Печально, что автор забил болт на свой продукт.
timofey_e-shkaf; +1 Ответить