Доработка типового функционала Конструктора макетов

24.05.23

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

Попросил клиент доработать конструктор макетов. КА 2.5.12.48. Задача: 1. добавить возможность выводить руководителя оргнанизции в макете договора между организациями. 2. прописывать сумму прописью.

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

Для решения обеих задач, потребуется один общий модуль "УправлениеПечатью". В расширение добавляем процедуры:

ТекстЗапроса. В конце дописываем вставку

   	#Вставка
	Если ОбъектМетаданных.ПолноеИмя() = "Справочник.Организации" Тогда
		Результат = СтрЗаменить(Результат,"ПсевдонимЗаданнойТаблицы.Наименование КАК Наименование,",
		"ПсевдонимЗаданнойТаблицы.Наименование КАК Наименование, ВложенныйЗапрос.Руководитель КАК Руководитель,ВложенныйЗапрос.РуководительРП КАК РуководительРП,");
		ТекущаяДатаЗапрос = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ДАТАВРЕМЯ(%1, %2, %3)",формат(ТекущаяДата(),"ДФ=yyyy"),формат(ТекущаяДата(),"ДФ=MM"),формат(ТекущаяДата(),"ДФ=dd"));
		Подзапрос = 
		"
		|	ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
		|	ОтветственныеЛицаОрганизаций.Владелец КАК Владелец,
		|	ОтветственныеЛицаОрганизаций.ФизическоеЛицо КАК Руководитель,
		|	isnull(СклоненияПредставленийОбъектов.РодительныйПадеж,""___"") КАК РуководительРП
		|ИЗ
		|	Справочник.ОтветственныеЛицаОрганизаций КАК ОтветственныеЛицаОрганизаций
		|	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СклоненияПредставленийОбъектов КАК СклоненияПредставленийОбъектов
		|		ПО (ОтветственныеЛицаОрганизаций.ФизическоеЛицо = СклоненияПредставленийОбъектов.Объект)
		
		|ГДЕ
		|	ОтветственныеЛицаОрганизаций.ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель)
		|	И ОтветственныеЛицаОрганизаций.ДатаНачала <= &ТекущаяДатаЗапрос
		|	И (ОтветственныеЛицаОрганизаций.ДатаОкончания =ДАТАВРЕМЯ(1,1,1,0,0,0)//ЕСТЬ NULL
		|			ИЛИ ОтветственныеЛицаОрганизаций.ДатаОкончания >= &ТекущаяДатаЗапрос)) КАК ВложенныйЗапрос
		|		ПО (ПсевдонимЗаданнойТаблицы.Ссылка = ВложенныйЗапрос.Владелец)";
		Подзапрос = СтрЗаменить(Подзапрос,"&ТекущаяДатаЗапрос",ТекущаяДатаЗапрос);
		Результат = Результат + Подзапрос;
	КонецЕсли;
	#КонецВставки
	Возврат Результат;

Сделал через вложенный запрос. Главная проблема: найти "действующего руководителя". Здесь знатоки могут меня поправить, если что не так. С датой ДА - извращение получилось ))). Это все для вывода руководителя. Они хранятся в справочнике и нужно отбирать по типу ответственного лица в "рабочем" диапазоне дат.

А для суммы прописью я доработал процедуру СписокОператоров:

&ИзменениеИКонтроль("СписокОператоров")
Функция чд_СписокОператоров()

	СписокОператоров = КонструкторФормул.СписокОператоров();

	Группа = СписокОператоров.Строки.Найти("СтроковыеФункции");
	Если Группа = Неопределено Тогда
		Группа = СписокОператоров.Строки.Добавить();
		Группа.Идентификатор = "СтроковыеФункции";
		Группа.Представление = НСтр("ru = 'Строковые функции'");
		Группа.Порядок = 5;
		Группа.Картинка = БиблиотекаКартинок.ТипФункция;
	КонецЕсли;

	Оператор = Группа.Строки.Добавить();
	Оператор.Идентификатор = "УправлениеПечатью_СтрокаЛатиницей";
	Оператор.Представление = НСтр("ru = 'СтрокаЛатиницей'");
	Оператор.ТипЗначения = Новый ОписаниеТипов("Строка");
	Оператор.ЭтоФункция = Истина;

	Группа = СписокОператоров.Строки.Найти("ПрочиеФункции");
	Если Группа = Неопределено Тогда
		Группа = СписокОператоров.Строки.Добавить();
		Группа.Идентификатор = "ПрочиеФункции";
		Группа.Представление = НСтр("ru = 'Прочие функции'");
		Группа.Порядок = 6;
		Группа.Картинка = БиблиотекаКартинок.ТипФункция;
	КонецЕсли;

	Оператор = Группа.Строки.Добавить();
	Оператор.Идентификатор = "УправлениеПечатью_КоличествоСтрок";
	Оператор.Представление = НСтр("ru = 'КоличествоСтрок'");
	Оператор.ТипЗначения = Новый ОписаниеТипов("Число");
	Оператор.ЭтоФункция = Истина;
    #Вставка
	Оператор = Группа.Строки.Добавить();
	Оператор.Идентификатор = "УправлениеПечатью_СуммаПрописью";
	Оператор.Представление = НСтр("ru = 'СуммаПрописью'");
	Оператор.ТипЗначения = Новый ОписаниеТипов("Число");
	Оператор.ЭтоФункция = Истина;
	
	#КонецВставки
	Возврат КонструкторФормул.КоллекцияПолей(СписокОператоров);

КонецФункции

И добавил тут же свою функцию

Функция СуммаПрописью(Число) Экспорт
	
	Если ТипЗнч(Число) = Тип("Число") Тогда
		Возврат РаботаСКурсамиВалют.СформироватьСуммуПрописью(Число,Константы.ВалютаРегламентированногоУчета.Получить(),Ложь,"ru_RU");
	КонецЕсли;
	
	ВызватьИсключение НСтр("ru = 'Неверно указано значение'");
	
КонецФункции

Теперь как это работает.

В конструкторе у организации появился Руководитель и Руководитель в родительном падеже:

 

 

а в операторах наша сумма прописью

 

 

в макете:

 

 

на печати:

 

 

Как-то так. На этом все. Надеюсь, кому-нибудь пригодится.

констуктор макетов числопрописью БСП

См. также

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

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

29400 руб.

29.06.2023    6703    17    7    

27

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

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

7200 руб.

02.08.2023    4715    18    1    

36

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

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3000 руб.

07.02.2023    7494    79    17    

36

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

Маленькая заметка (в трех разных масштабах) для тех, кто часто видит окно при входе в ЗУП «Новые сообщения для расшифровки по 1С-Отчетность», которое появляется через 60 секунд после запуска программы, как раз когда вы уже добрались до интересующей вас формы и начали в ней что-то активно делать:

1 стартмани

17.06.2024    3420    47    Znata_PI    5    

13

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

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

2 стартмани

22.04.2024    5685    dimanich70    15    

22

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

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

01.03.2024    9126    dimanich70    10    

21
Оставьте свое сообщение