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

29.01.24

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

Скачать файл

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

Наименование SM По подписке [?] Купить один файл
(Устарело) Расширение: Проверка документов (версия 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
38
38
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 участников из разных регионов России и мира.

44400 руб.

06.12.2023    12836    727    0    

146

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

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

48500 руб.

19.02.2016    107892    108    5    

89

Обмен с ГосИС Программист Платформа 1С v8.3 Конфигурации 1cv8 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Универсальная конфигурация ХамелеонЗерно для взаимодействия с системой ФГИС Зерно (тестовый+рабочий контур) может использоваться для интеграции в любую конфигурацию на базе 1С, версии ПРОФ и выше. Работа через API 1.0.7 и на API 1.0.8. Для удобства реализован общий интерфейс в виде обработки, схожей с интерфейсом ФГИС Зерно, но возможностей гораздо больше, т.к. при интеграции в Вашу учетную систему, можно на основании Ваших справочников и документов, создавать соответствующие документы и справочники в системе ФГИС Зерно и наоборот.

20400 руб.

27.06.2023    3846    19    0    

16

Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”. Курс является третьим курсом траектории развития 1С-Разработчика.

04.12.2023    6818    0    Infostart    5    

174

Системный администратор Программист Бизнес-аналитик Конфигурации 1cv8

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

92000 руб.

04.12.2023    7081    0    0    

27

1С-программирование Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Данный онлайн-курс предусматривает углубленное изучение языка запросов и возможностей системы компоновки данных, которые понадобятся при разработке отчетов, работающих на платформе “1С:Предприятие” в рамках различных прикладных решений. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей различных прикладных решений, которые используют в своей работе отчеты разного назначения. Курс является вторым курсом траектории развития 1С-Разработчика, с углубленным изучением тем "Язык запросов" и "Отчеты", которые были рассмотрены в рамках “Базового курса для начинающих 1С-программистов”.

04.10.2023    5182    0    Infostart    1    

94

Поддержка Для ИТ-специалистов Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

29900 руб.

26.12.2023    2842    12    0    

5

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

"1С:Архив" – это универсальная система, обеспечивающая надежное долговременное хранение документов с гарантией юридической значимости на неограниченный срок. "1С:Архив" разработан на основе нормативно-правовых актов по архивному делу, поддерживает операции хранения документов – от попадания в архив до уничтожения – и не имеет ограничений на объем хранимых данных. "1С:Архив" сопровождается методологической поддержкой в виде организационных документов по хранению, входящих в состав "Комплекта нормативных документов" к "Методике управления документами и совместной работой", разработанной специалистами фирмы "1С". Использование "1С:Архива" позволяет организовать единое хранилище всех бумажных и электронных документов из разных информационных систем, вести архивный учет в соответствии с требованиями Росархива и снизить нагрузку на учетные системы. Продукт подходит для малых, средних, крупных предприятий и учреждений любых отраслей.

90000 руб.

24.10.2022    5193    7    1    

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

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

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

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

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

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

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

Решение простое, программно добавлять ваши элементы на форму. (Судя по описанию, вы нам это не предоставили)
12. insurgut 207 11.04.23 08:10 Сейчас в теме
(10) да тут вроде ни одной формы в расширение не захвачено. О каком изменении формы речь?
sapervodichka; +1 Ответить
13. sapervodichka 6865 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 1345 12.04.23 09:30 Сейчас в теме
(13)
Если ТипЗнч(Форма) = Тип("УправляемаяФорма")

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

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

И инфо старт не дает готовое решение, даже тут вам в буду щем придется допиливать и вникать, а как оно работает :)
19. sapervodichka 6865 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 6865 16.04.23 10:15 Сейчас в теме
(20) замечательная идея, попробую сегодня сделать и опубликовать
22. sapervodichka 6865 17.04.23 01:18 Сейчас в теме
(20) сделал, вероятно завтра опубликуют, ссылку потом сюда прикреплю
23. sapervodichka 6865 17.04.23 10:41 Сейчас в теме
25. Vinzor 102 01.05.23 13:37 Сейчас в теме
Огромный респект автору за это.
Меня пользователи-бухи как раз просили в ЗУПе закрыть возможность изменения "Данных для расчета зарплаты", созданные менеджерами, если они проверены бухгалтерами.
Я почти закончил писать локальную проверку через механизм программно добавляемой в документ команды, которая попеременно при исполнении прописывает / очищает дополнительный реквизит документа "Проверено", тип строка, в ней дата и ФИО того, кто проверил.
Контроль - если ограниченный пользователь (проверка по роли) открывает документ, в котором значение допреквизита заполнено, он открывается ему так, что все значимые элементы формы не доступны.
Но тут увидел публикацию уважаемого Дмитрия, скачал, посмотрел, очень нравится.
Теперь на распутье: то ли своё доделать, то ли от Дмитрия приспособить ? :) :) :)
27. npolavochkina 27.09.23 09:16 Сейчас в теме
(25) Еще есть третий вариант. Можно использовать появившийся в ЗУП механизм "Процессы обработки документов". Реализовал в нем проверку и согласование табеля с запретом на редактирование если проверка пройдена за полчаса без внесение изменений в конфу вообще.
26. iLonmaks 14 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?
Оставьте свое сообщение