Использование макетов вместо дополнительных реквизитов или регистров сведений

Публикация № 990233

Разработка - Практика программирования

Макеты Дополнительные реквизиты Внешняя обработка 1С8.3 БСП Управляемые формы

37
Использование макетов вместо дополнительных реквизитов или регистров сведений на конфигурациях с БСП.

В типовых конфигурациях на управляемых формах «1С Бухгалтерия предприятия 8», «1С Зарплата и управление персоналом 8», «1С Управление Торговлей 8» и т.д., которые реализованы с использованием БСП (библиотека стандартных подсистем) – есть  такая замечательная вещь, как регистр сведений «Пользовательские макеты печати». Помимо своего прямого предназначения  - дать пользователю возможность самостоятельно редактировать печатные формы (конечно в разумных пределах), его можно использовать и по другому назначению. А именно  -  хранить в нём некоторую информацию. Бывают ситуации, когда поставленная задача казалось бы не даёт возможности её выполнить, не внеся изменений в типовую конфигурацию. А менять типовую без крайней необходимости – ой, как не хочется. На мой взгляд - с помощью регистра сведений "Пользовательские макеты" - можно решать некоторые задачи. Регистр сведений "ПользовательскиеМакетыПечати" - имеет два измерения: "Объект" и "ИмяМакета", которые имеют тип "Строка" и один ресурс "Макет" с типом "ХранилищеЗначений", где можно хранить что угодно. Почему бы этим не воспользоваться. Ниже примеры из моей практики, где применял.

Пример для «1С Зарплата и управление персоналом 8»:

Необходимо из внешней торговой системы загружать данные о продажах и на основании этих данных рассчитывать премии продавцам. Продавцы имеют процент в зависимости от должности («стажер», «консультант» и т.д) и от места расположения магазина. Никакой линейной зависимости нет: одна и та же должность в разных  магазинах имеет разный процент. В прежней редакции Зарплаты 2.5 был заведен «регистр сведений» в разрезе должность/подразделение со ставкой процента. При переходе на 3.1 – было решено использовать макет. Это позволило оставить конфигурацию полностью типовой. Использовать дополнительные реквизиты не получалось, т.к. тогда пришлось бы прописывать для каждого магазина должности и ставки процентов. Оставался бы открытым вопрос с хранением истории изменения ставок, да и забивать форму кучей дополнительных реквизитов тоже не хотелось.

Пример использования при печати:

Необходимо разработать внешнюю печатную форму (неважно что это будет, например трудовой договор по форме принятой в организации). При печати должно «всплывать» окно, в котором дополнительно указываются некоторые сведения, которые также выводятся в печатную форму. При этом должна сохранятся возможность повторной печати с этими же самыми сведениями: у одного сотрудника это одни условия, у другого – другие. В прежней версии использовался непериодический регистр сведений. Я сделал с использованием макета. При первичной печати данные в макет записываются, при повторной – считываются.

Конечно использование макетов - регистр сведений никогда не заменит, но в каких-то случаях очень даже полезен.

Ниже пример реализации по примеру с записью ставок процентов продаж:

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

С записью всё просто:

&НаКлиенте
Процедура ЗаписатьПользовательскийМакет() 

        ЗаписатьПользовательскийМакетНаСервере();

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

&НаСервере
Процедура ЗаписатьПользовательскийМакетНаСервере()
	
	ТаблДокумент = Новый ТабличныйДокумент;
	
	ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	Макет = ОбработкаОбъект.ПолучитьМакет("Макет");
	
	ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
	Для каждого стр из ПроцентыПродаж цикл
		ОбластьСтрока.Параметры.КодПодразделения  = стр.Подразделение.Код;
		ОбластьСтрока.Параметры.Подразделение     = стр.Подразделение.Наименование;
		ОбластьСтрока.Параметры.Должность         = стр.Должность.Наименование;
		ОбластьСтрока.Параметры.Процент           = стр.Процент;
		ОбластьСтрока.Параметры.ПечДатаСведений   = ДатаСведений;
		ТаблДокумент.Вывести(ОбластьСтрока);
	КонецЦикла;

	ИмяВладельца = "Справочник.Организации";
	ИмяМакета    = "Процент_продаж";
	
	Запись = РегистрыСведений.ПользовательскиеМакетыПечати.СоздатьМенеджерЗаписи();
	Запись.Объект = ИмяВладельца;
	Запись.ИмяМакета = ИмяМакета;
	Запись.Использование = Истина;
	Запись.Макет = Новый ХранилищеЗначения(ТаблДокумент, Новый СжатиеДанных(9));
	Запись.Записать();
	
КонецПроцедуры	

«ИмяВладельца» и «ИмяМакета» - большой роли не играют. Главное чтобы потом при считывании макета они были такими же.

Считываем макет и выводим на печать:

&НаКлиенте
Процедура ПечатьСписка(Команда)
	
	ТабличныйДок = ПечатьСпискаНаСервере();
	
	//========= эта конструция нужна, чтобы открыть общую форму "Печать документов"
	КоллекцияПечатныхФорм.Очистить();
	МассивОбъектов=Новый Массив;
	МассивОбъектов.Добавить(ТабличныйДок);
	Стр=КоллекцияПечатныхФорм.Добавить();
	Стр.ИмяМакета="Процент_продаж";
	Стр.ИмяВРЕГ="ПРОЦЕНТ_ПРОДАЖ";
	Стр.ТабличныйДокумент=ТабличныйДок;
	Стр.СинонимМакета="Процент продаж";
	Стр.Экземпляров=1;
	Стр.ОфисныеДокументы = "";
	
	ПараметрыОткрытия = Новый Структура("ИмяМенеджераПечати,ИменаМакетов,ПараметрКоманды,ПараметрыПечати");
	ПараметрыОткрытия.ИмяМенеджераПечати="Справочник.Организации";
	ПараметрыОткрытия.ПараметрКоманды = Новый Массив;
	ПараметрыОткрытия.ПараметрыПечати = Новый Структура;
	ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", КоллекцияПечатныхФорм);
	ПараметрыОткрытия.Вставить("ОбъектыПечати", МассивОбъектов);
	ПараметрыОткрытия.Вставить("ОфисныеДокументы","");
	ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ЭтаФорма.ВладелецФормы);
	
КонецПроцедуры

&НаСервере
Функция ПечатьСпискаНаСервере()
	
	//============ получение макета из регистра сведений
	ТекстЗапроса = 
	"ВЫБРАТЬ
	|	ПользовательскиеМакетыПечати.Макет КАК Макет,
	|	ПользовательскиеМакетыПечати.ИмяМакета КАК ИмяМакета
	|ИЗ
	|	РегистрСведений.ПользовательскиеМакетыПечати КАК ПользовательскиеМакетыПечати
	|ГДЕ
	|	ПользовательскиеМакетыПечати.Объект = &Объект
	|	И ПользовательскиеМакетыПечати.ИмяМакета ПОДОБНО &ИмяМакета
	|	И ПользовательскиеМакетыПечати.Использование";
	
	Запрос = Новый Запрос(ТекстЗапроса);
	Запрос.Параметры.Вставить("Объект", "Справочник.Организации");
	Запрос.Параметры.Вставить("ИмяМакета", "Процент_продаж");
	
	Выборка = Запрос.Выполнить().Выгрузить();
	Если Выборка.Количество()=1 Тогда
		МакетВХранилище = Выборка[0].Макет;
		МакетСоставаПоказателей = МакетВХранилище.Получить();
	КонецЕсли;
	
	Таб = Новый ТабличныйДокумент;
	
	Если МакетСоставаПоказателей = Неопределено Тогда
		СообщитьПользователю("Ставки не загружены в программу!");
		Возврат Таб;
	КонецЕсли;	
	
	//===========заполнение таблицы значений.Для вывода на печать она не нужна, можно сразу заполнять табличный документ 
	//=========== ТЗ нужна, чтобы прочитанные данные из макета использовать для дальнейших расчетов.
	//=========== Например в какой-нибудь обработке по расчету премий - уже на основании полученных ставок из макета.
	
	Табл = Новый ТаблицаЗначений;
	Табл.Колонки.Добавить("Подразделение", Новый ОписаниеТипов("СправочникСсылка.ПодразделенияОрганизаций"));
	Табл.Колонки.Добавить("Должность", Новый ОписаниеТипов("СправочникСсылка.Должности"));
	Табл.Колонки.Добавить("Процент",Новый ОписаниеТипов("Число"));
	Табл.Колонки.Добавить("ПечДатаСведений",Новый ОписаниеТипов("Дата"));
	
	Для а = 1 по МакетСоставаПоказателей.ВысотаТаблицы Цикл
		КодПодразделения 	= МакетСоставаПоказателей.Область(а,1,а,1).Текст;
		Подразделение 		= МакетСоставаПоказателей.Область(а,2,а,2).Текст; 
		Должность 		= МакетСоставаПоказателей.Область(а,3,а,3).Текст;
	        Процент   		= МакетСоставаПоказателей.Область(а,4,а,4).Текст;
		ПечДатаСведений     = МакетСоставаПоказателей.Область(а,5,а,5).Текст;
		Если Процент = "" Тогда
			Процент = 0;
		КонецЕсли;	
	        НовСтрока = Табл.Добавить();
		НовСтрока.Подразделение = Справочники.ПодразделенияОрганизаций.НайтиПоКоду(КодПодразделения);
		НовСтрока.Должность = Справочники.Должности.НайтиПоНаименованию(СокрЛП(Должность));  
		НовСтрока.Процент = Число(Процент);
		НовСтрока.ПечДатаСведений = Дата(ПечДатаСведений);
	КонецЦикла;
	
	//========= вывод на печать
	ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	Макет = ОбработкаОбъект.ПолучитьМакет("Макет");
	Шапка = Макет.ПолучитьОбласть("Шапка");
	Таб.Вывести(Шапка);
	ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
	Для каждого стр из Табл цикл
		ОбластьСтрока.Параметры.КодПодразделения  = стр.Подразделение.Код;
		ОбластьСтрока.Параметры.Подразделение     = стр.Подразделение.Наименование;
		ОбластьСтрока.Параметры.Должность         = стр.Должность.Наименование;
		ОбластьСтрока.Параметры.Процент           = стр.Процент;
		ОбластьСтрока.Параметры.ПечДатаСведений   = Формат(стр.ПечДатаСведений,"ДФ=dd.MM.yyyy");
		Таб.Вывести(ОбластьСтрока);
	КонецЦикла;

	Возврат Таб;
	
КонецФункции

Для вывода на печать, чтобы использовать общую форму "Печать документов", нужно будет ещё в реквизиты формы добавить Таблицу значений с колонками произвольного типа "ИмяМакета", "ТабличныйДокумент", "ИмяВРЕГ", "СинонимМакета", "Экземпляров", "ПолныйПутьКМакету", "ИмяФайлаПечатнойФормы", "ОфисныеДокументы".

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

Пример с обработкой прилагаю: работает и "1С Зарплатой 8" и с "1СБухгалтерией 8". В "1С Управлении торговлей 8" не сработает по причине отсутствия справочников "Должности" и "Подразделения", но сам принцип рабочий.

Обработка тестировалась на релизах "1С Зарплата 8" 3.1.7.144, 3.1.8.216; "1С Бухгалтерия 8" 3.0.67.54.

37

Скачать файлы

Наименование Файл Версия Размер
ПримерИспользованияПользовательскихМакетов
.epf 14,54Kb
27.01.19
2
.epf 1.0 14,54Kb 2 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. konstruktiv 28.01.19 07:26 Сейчас в теме
Ужас какой-то. Для этого теперь есть расширения.
TreeDogNight; le_; EVKash; LeXXeR; Darklight; Soloist; TeMochkiN; +7 Ответить
6. Comandante 190 28.01.19 10:06 Сейчас в теме
(1) - Как в приведенном примере, например по расчету премий во внешней обработке получить значения ставок используя расширения? Поделитесь пожалуйста.
9. the1 388 28.01.19 11:25 Сейчас в теме
(6) Завести непериодический регистр сведений прямо в расширении
14. Comandante 190 28.01.19 13:04 Сейчас в теме
(9) Вот только не отвалился бы этот регистр при обновлении конфигурации или платформы. Сообщения такие были.
Или возможен вариант с телодвижениями, как описано тут: https://infostart.ru/public/784534/
2. olbu 28.01.19 08:37 Сейчас в теме
Я использую для хранения не большего массива данных в УПП 1.3 - справочник "СохраненныеНастройки", у которого так же имеется реквизит "ХранилищеНастроек", в него и помещаю данные. Это в основном таблица значений. Что бы не создавать новый Регистр Сведений.
3. echo77 1094 28.01.19 09:00 Сейчас в теме
(2) интересно, на сколько большие таблицы помещаются в справочник. Вспомнилась необходимость сохранить таблицу на 400К строк, думаю, в моем случае - поместить все в элемент справочника плохая затея.
Что скажете?
5. Darklight 19 28.01.19 09:58 Сейчас в теме
(3)400 строк - это ни о чём. Вот 400 тыс строк - это да, можно было бы подумать, но.... всё-равно - для ХранилищаЗначений это не так важно - всё-равно будут храниться в СУБД как MEMO данные в отдельной области. Дальше нужно обращать внимание только как часто получается значение объекта справочника (когда не нужно это значение ХранилищаЗначений) - думаю для таких "системных" справочников доля таких холостых считываний ничтожна - так что вполне можно хранить в справочнике. Но это я про сотни тысяч строк. А сотник строк - можно хранить где угодно (если, конечно, в реквизитах самих строках не хранится что-то гигантское).
8. the1 388 28.01.19 11:24 Сейчас в теме
11. Darklight 19 28.01.19 12:15 Сейчас в теме
(8)Ооо, простите букву K не разглядел ;-)
10. olbu 28.01.19 11:39 Сейчас в теме
(3)Да, это очень плохая идея..., этот справочник Я использую для хранения не большего массива данных, ну например до 50 строк
4. Darklight 19 28.01.19 09:53 Сейчас в теме
А я люблю "ХранилищеНастроек", храню данные под пустым пользователем в системном хранилище. Ключи доступа - любые строки. Проблема только в том, что для доступа к несвоему пользователю (в т.ч. пустому) нужны адм права - поэтому приходится работать с этим объектом в привилегированном режиме. Впрочем, я часто работаю даже с нетиповыми объектами конфигураций (если они не подразумевают прямого участия пользователя и доступ требуется всегда и всем), тоже с установленным привилегированным режимом (чтобы не париться с созданием и настройкой ролей). Справочник "СохраненныеНастройкм" тоже использовал для хранения настрек - но там такая же фигня как с системных харнилимщем - общие настройки надо хрнаить под пустым пользователем, а в ролях доступ прописан через RLS на текущего пользователя - тоже надо привилегированный режим включать.
17. leemuar 28.01.19 15:40 Сейчас в теме
(4) хранилище настроек - прекрасный инструмент. Но насколько я помню без административных прав даже в привилегированном режиме невозможно получить чужие настройки. Это даже в документации было описано. Что-то поменялось с тех пор в платформе?
18. Darklight 19 28.01.19 16:41 Сейчас в теме
(17)Да, я напутал, установка привилегированного режима не даёт возможность обращаться не к своим настройкам в хранилище системных настроек без адм. прав
7. Comandante 190 28.01.19 10:47 Сейчас в теме
Идея статьи - показать место, где в типовых конфигурациях можно ещё хранить данные. Упомянутый регистр сведений -неплохое место. К нему есть доступ у пользователей и с ограниченными правами. Есть ресурс с типом «Хранилище значений». Не обязательно там хранить именно макеты - можно ведь и таблицу значений. В статье получилось, что я сконцентрировал внимание именно на работе с макетами - надо бы поправить наверное ... Но и в макетах особо плохого, при малом объеме данных, ничего нет. 1С в типовых их активно использует, например при выгрузке той же регламентированной отчетности.
16. ilialin 28.01.19 14:30 Сейчас в теме
(7) Это плохая идея - вы пытаетесь натянуть сову на кактус...
Да, это возможно, но не следует так делать - вы получаете кучу проблем в перспективе (пожалуй, даже хуже, чем снимая конфигурацию с поддержки)
Для вашей задачи есть расширения конфигурации - в последних версиях платформы там можно создавать свои документы/справочники/регистры.
21. Comandante 190 29.01.19 15:55 Сейчас в теме
Напишите ваше сообщение
(16) - Не вижу, где бы я получил кучу проблем в перспективе. Ну правда. В регистр, который 1С разработали под хранение макетов - я положил макет. Какие тут могут быть проблемы?
22. EVKash 3 29.01.19 16:31 Сейчас в теме
(21) Выпустят к примеру БСП 4, где полностью пересмотрят данный механизм - и что тогда?
Правильно, ВСЁ придется переделывать/переписывать.
Вон прогеры 1С тоже не думали, что НДС будет меняться...
12. androidT1C 73 28.01.19 12:16 Сейчас в теме
А какой смысл сохранять в хранилище значений именно макет, а не сразу готовую таблицу значений?
13. Comandante 190 28.01.19 13:01 Сейчас в теме
(12) - в конкретном приведенном примере ТЗ. Удобней. Согласен. Макет скорее как вариант.
15. Shmell 257 28.01.19 13:43 Сейчас в теме
Мне тоже нравиться данный механизм БСП. Я у себя задействовал его для хранения правил интеграции:
Каждый макет - набор правил для конкретного вида объекта
Удобно что можно в пользовательском режиме "на лету" менять правила не лазя в конфигуратор. И по-мне, такой подход удобнее чем произвольные тексты в справочниках, здесь все перед глазами.
Прикрепленные файлы:
acanta; Comandante; +2 Ответить
19. 7OH 32 29.01.19 11:56 Сейчас в теме
А как по таким "данным" отчет построить ?
Мы же их не ради хранения записываем, а явно где-то должны потом использовать.
20. Comandante 190 29.01.19 15:48 Сейчас в теме
(19) - Если Вы в регистр положили табличный документ, то уже в готовом виде его и получаете. Достаточно реквизит на форму вывести типа "ТабличныйДокумент". Ниже в примере - "Реквизит1".


&НаСервере
Функция Команда1НаСервере()
	
	ТекстЗапроса = 
	"ВЫБРАТЬ
	|	ПользовательскиеМакетыПечати.Макет КАК Макет,
	|	ПользовательскиеМакетыПечати.ИмяМакета КАК ИмяМакета
	|ИЗ
	|	РегистрСведений.ПользовательскиеМакетыПечати КАК ПользовательскиеМакетыПечати
	|ГДЕ
	|	ПользовательскиеМакетыПечати.Объект = &Объект
	|	И ПользовательскиеМакетыПечати.ИмяМакета ПОДОБНО &ИмяМакета
	|	И ПользовательскиеМакетыПечати.Использование";
	
	Запрос = Новый Запрос(ТекстЗапроса);
	Запрос.Параметры.Вставить("Объект", "Справочник.Организации");
	Запрос.Параметры.Вставить("ИмяМакета", "Процент_продаж");
	
	Выборка = Запрос.Выполнить().Выгрузить();
	Если Выборка.Количество()=1 Тогда
		МакетВХранилище = Выборка[0].Макет;
		МакетСоставаПоказателей = МакетВХранилище.Получить();
	КонецЕсли;
	
	Возврат МакетСоставаПоказателей;
	
	

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

&НаКлиенте
Процедура Команда1(Команда)
	Реквизит1 = Команда1НаСервере();
КонецПроцедуры
Показать


Или как я в статье писал (и обработка в примере) - там вывод на Общую форму "Печать документов" - для красоты.
Оставьте свое сообщение

См. также

Конфигурация для администраторов "Центр управления базами" для 8.3 УФ 23

Инструменты и обработки Системный администратор Программист Архив с данными v8 v8::УФ 1cv8.cf Абонемент ($m) Администрирование данных 1С БСП (Библиотека стандартных подсистем)

Конфигурация предназначена для централизованного управления информационными базами предприятия. Разработана на БСП версии 2.4.4.76. В работе использует COM-соединение.

3 стартмани

09.10.2019    1902    6    WhiteOwl    9       

Картинки конфигурации 26

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::УФ 1cv8.cf Абонемент ($m) Работа с интерфейсом

Иногда перед разработчиками 1С встает вопрос: есть ли подходящая общая картинка в конфигурации или нужно рисовать свою иконку для кнопки? А какие вообще картинки есть в конфигурации и какие у большинства из них размеры? Поиск подходящей картинки через Конфигуратор, мне показался не совсем удобным, поэтому и появился отчет по общим картинкам конфигурации. Отчет универсальный должен работать в любой конфигурации и на обычных и на управляемых формах. Важно: версия платформы 1С должна быть 8.3.14 или выше.

1 стартмани

10.09.2019    1715    10    rusmil    6       

Описание формата внутреннего представления данных 1С в контексте обмена данными 145

Статья Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных Разработка

Фирма 1С не рекомендует использовать внутреннее представление данных для любых целей, которые отличны от обмена с 1С:Предприятием 7.7. Но сама возможность заглянуть на "внутреннюю кухню" платформы с помощью функций ЗначениеВСтрокуВнутр(), ЗначениеВФайл(), ЗначениеИзСтрокиВнутр() и ЗначениеИзФайла(), дала возможность сообществу программистов 1С разработать новые приемы разработки и анализа. Так, именно на использовании внутреннего представления был построен алгоритм "быстрого массива", который позволяет практически мгновенно создать массив в памяти на основании строки с разделителями. С помощью разбора внутреннего представления можно "на лету" программным кодом выполнить анализ обычной формы и даже сделать редактор графической схемы. Во внутреннем формате сохраняют свои данные между сеансами различные популярные внешние обработки. А еще это возможность сделать быстрый обмен с внешними системами.

1 стартмани

06.09.2019    4460    4    Dementor    27       

Запутывание кода 1С 39

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Защита и шифрование

Обработка запутывания (обфускации) исходного кода 1С с помощью регулярных выражений.

2 стартмани

02.09.2019    3329    12    leoxz    62       

Простая выгрузка данных в универсальном формате Enterprise Data 67

Статья Программист Внешняя обработка (ert,epf) v8::УФ Розница УНФ ERP2 ЗКГУ3.0 БП3.0 УТ11 КА2 ЗУП3.x Абонемент ($m) Обмен через XML

Пошагово разобран текст процедуры, позволяющей выгрузить произвольный набор объектов в формате Enterprise Data (конечно, если это позволяет конфигурация). Приложена обработка, позволяющая выгружать произвольные объекты, в том числе запросом или по данным журнала регистрации.

2 стартмани

26.08.2019    2718    6    Iyar    3       

Индикатор на управляемой форме 23

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8::УФ 1cv8.cf Абонемент ($m) Работа с интерфейсом

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

1 стартмани

18.08.2019    3480    6    aximo    28       

Удобный выбор из таблицы/дерева в УФ 61

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом Разработка

Выбор из таблицы значений или дерева значений в выпадающем списке рядом с полем ввода - УФ, быстро и просто!

1 стартмани

12.08.2019    3106    4    Yashazz    18       

Отбор на управляемой форме из списка значений 41

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом Разработка

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

1 стартмани

09.08.2019    4321    4    nagaitseff    6       

Изменяющееся контекстное меню в 1С 8.3 44

Статья Программист Архив с данными v8 v8::УФ Абонемент ($m) Практика программирования Разработка Работа с интерфейсом

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

1 стартмани

06.08.2019    4367    1    signum2009    14       

Markdown-editor в 1С (с сохранением в HTML) 43

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8::УФ 1cv8.cf Абонемент ($m) Универсальные обработки

В этой обработке вы пишете свой текст, используя синтаксис Markdown, а на выходе получаете чистый HTML-код, избавленный от JS-библиотеки, которая его сформировала.

1 стартмани

04.07.2019    2760    12    riposte    3       

Универсальные печатные формы в управляемой форме 29

Отчеты и формы Программист Архив с данными v8::УФ 1cv8.cf Казахстан Абонемент ($m) Универсальные печатные формы

Универсальные печатные формы + Возможность редактировать печатную форму в режиме предприятия на лету + Код заполнения в режиме предприятий + Конструктор запросов и конструктор заполнения областей + Хранит и восстанавливает версий макет и кода заполнения + Легко для изучения и работы не для программистов

5 стартмани

01.07.2019    2340    10    t_prog    0       

Обработка-редактор HTML 34

Инструменты и обработки Программист Конфигурация (md, cf) v8 v8::УФ 1cv8.cf Абонемент ($m) Работа с интерфейсом

Редактор HTML для управляемого интерфейса 8.3.

1 стартмани

10.06.2019    3295    26    ValeriVP    8       

Работа с файлами (обычная и управляемая форма) 84

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Универсальные обработки

Нужно загрузить файл с клиента на сервер или же, наоборот, файл загрузить с сервера на клиент, а впридачу все это на web-клиенте, да еще и асинхронно? Нет ничего проще, читай далее, как это сделать!

1 стартмани

10.06.2019    5841    47    Xershi    40       

Работа с графической схемой в объектной модели DOM 41

Статья Программист Конфигурация (md, cf) v8 v8::УФ Абонемент ($m) Универсальные функции

Пример кода для работы с графической схемой в объектной модели DOM, платформа 8.3.12.

1 стартмани

04.06.2019    3624    4    botokash    19       

Спутник программиста - каркасная конфигурация начинающим программистам 1С 65

Инструменты и обработки Программист Стажер Архив с данными v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Практика программирования Разработка

Спутник программиста - каркасная конфигурация с примерами для разработки начинающим программистам 1С.

1 стартмани

23.05.2019    9579    95    bulas    27       

Немного о графических файлах. Сжатие. Распознавание текста 51

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика

Простые и доступные методы борьбы с лишним весом графических файлов и распознавание текста.

1 стартмани

06.05.2019    3912    7    tusv    5       

Групповая проверка доработок 101

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Инструментарий разработчика

Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР. Выдает список обнаруженных ошибок. Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям. В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем. Проверялась на Зарплата и управление персоналом КОРП 3.1.8.216, Управление торговлей 11, 1С:ERP Управление предприятием 2.4.7.141, Бухгалтерия предприятия КОРП 3.0.68.66.

2 стартмани

05.05.2019    6734    65    sapervodichka    23       

Быстрый запрос 41

Отчеты и формы Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Универсальные обработки

Можно ли дать пользователю "удочку", а не "рыбу"? До сих пор ответ на этот вопрос был отрицательным. Всякий инструмент, который мог бы делать с базой данных все или почти все (или хотя бы многое), отвергался пользователями, как слишком сложный. Вспомните тот же SQL, который изначально разрабатывался именно как пользовательский инструмент. "Быстрый запрос" - это попытка устранить сложность, но сохранить при этом универсальность.

1 стартмани

29.04.2019    5549    15    mkalimulin    28       

Электронная таблица в 1С средствами табличного документа 66

Инструменты и обработки Программист Архив с данными v8 v8::УФ 1cv8.cf Россия Абонемент ($m) Универсальные обработки

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

1 стартмани

23.04.2019    5494    44    user706545_kseg1971    36       

Вывод вариантов СКД в таблицы на управляемой форме 25

Статья Программист Внешняя обработка (ert,epf) v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом

Задача стояла такая: есть 2 различных запроса, результаты которых выгружаются на форму обработки в таблицы значений (далее ТЗ) и программно "соприкасаются" между собой определенным образом (как именно- в рамках данной статьи неважно). Нюанс в том, что запросы должны иметь свой компоновщик настроек и могут интерактивно на форме изменяться пользователем. На оригинальность публикации не претендую - изначально в рамках поставленной задачи пытался найти что-то подобное (уже готовый шаблон) на инфостарте, возможно "плохо искал" ;)

05.04.2019    3905    artkor    1       

Аутентификация на внешних сервисах посредством OAuth 80

Статья Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Windows Абонемент ($m) Информационная безопасность Внешние источники данных

Пример подключения к сервисам Google из 1С с помощью протокола OAuth и получения данных с внешнего сервиса.

1 стартмани

03.04.2019    6121    4    binx    5       

Расширение подсистемы доставки и логистики, интеграция с Яндекс.Картами 23

Отчеты и формы Пользователь Расширение (cfe) v8::УФ УПП1 УТ11 УУ Оптовая торговля Абонемент ($m) Рабочее место

Зоны доставки на карте. Автоматическое определение зоны по адресу. Планирование графика доставок. Расчет маршрута и контроль пробега.

2 стартмани

02.04.2019    3093    22    andryandry    4       

Расширение "Быстрая проверка кода" для конфигурации 1С:Автоматизированная проверка конфигураций 88

Инструменты и обработки Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Абонемент ($m) Инструментарий разработчика

Расширение для конфигурации "1С:Автоматизированная проверка конфигураций", позволяющее проверять произвольный код.

1 стартмани

26.03.2019    9259    39    Bazil    22       

Методика оптимизации программного кода 1С: проведение документов 83

Инструменты и обработки Программист Архив с данными v8 v8::УФ Абонемент ($m) Обработка документов Производительность и оптимизация (HighLoad) Инструментарий разработчика

Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С. Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия. К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).

1 стартмани

19.03.2019    14136    13    dmitrydemenew    83       

Программное создание реквизита управляемой формы с помощью механизма расширений 88

Статья Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Разработка

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

1 стартмани

12.03.2019    13539    8    ni_cola    24       

Инструктор. Прототип инструмента создания быстрых пользовательских инструкций 69

Инструменты и обработки Программист Пользователь Архив с данными v8 v8::УФ Россия Windows Абонемент ($m) Пользователю системы Инструментарий разработчика

Прототип дружелюбного и эффективного инструмента для написания пользовательских экспресс-инструкций. Задействована штатная утилита Windows, о существовании которой многие не знают и которая умеет делать огромную работу по логированию действий и снятию скриншотов на всех ПК с Windows (начиная с версии Win7). "Инструктор" не требует никакой установки и дополнительных библиотек! Это означает, что инструмент будет работать и на домашнем ПК и на "чужом ноутбуке" и на терминальном win-сервере у заказчика, где ваши права сильно ограничены. Вы просто подключаете легкую файловую базу 1С и получаете инструмент по снятию скриншотов с интересной функциональностью...

1 стартмани

15.02.2019    6712    37    ROM_NN    8       

Программное добавление элементов на управляемую форму 32

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8::УФ 1cv8.cf Россия Абонемент ($m) Работа с интерфейсом

Пример добавления Команд, Полей ввода, Групп, Страниц, Реквизитов, Обработчиков событий.

1 стартмани

13.02.2019    8526    12    spec8s    14       

Расширение: Цветовые схемы для 1С: Предприятия 10

Инструменты и обработки Программист Расширение (cfe) v8::УФ 1cv8.cf Абонемент ($m) Работа с интерфейсом

Расширение позволяет сменить цвет оформления для интерфейса Такси.

1 стартмани

10.02.2019    5276    21    spec8s    4       

Удобная консоль регламентных и фоновых заданий 43

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Универсальные обработки Сервисные утилиты Администрирование данных 1С

Аналог обработки БСП "РегламентныеИФоновыеЗадания". Не требует наличия библиотек, может использоваться в качестве внешней обработки. В отличие от обработки БСП предоставляет больше информации о свойствах регламентных и фоновых заданий, а также об ошибках и сообщениях для пользователей, возникших во время их выполнения. Позволяет управлять регламентными (создание, удаление, настройка расписания, ручной запуск) и фоновыми (прерывание) заданиями.

1 стартмани

06.02.2019    5115    93    Alxby    15       

Редактор объектов информационной базы 8.3 37

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка (СДРОбъектУпр) для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.31 от 02.10.2019

2 стартмани

23.01.2019    8695    127    ROL32    21       

Виртуальная (экранная) клавиатура для управляемых форм 31

Инструменты и обработки Программист Архив с данными v8 v8::УФ 1cv8.cf Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

Предлагаю свой вариант виртуальной клавиатуры для использования в разработках, предполагающих использование сенсорного ввода.

1 стартмани

14.12.2018    5385    23    asdfgcom    14       

ART - экспериментальный инструмент программирования 65

Инструменты и обработки Программист Архив с данными v8 v8::УФ Абонемент ($m) Практика программирования

Насколько сложным должен быть встроенный инструмент программирования для такой системы, как 1С и что получится, если упростить его до последнего предела...

1 стартмани

07.12.2018    9202    11    mkalimulin    103       

КопиПастаМер v.2 (универсальный) 37

Инструменты и обработки Системный администратор Программист Стажер Внешний отчет (ert,erf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика

Обработка находит набор одинаковых строк в разных текстовых файлах и ранжирует результат по количеству таких повторов. Поиск по всем файлам и под-каталогам, фильтр по типу файла, выбор кодировки, удобное открытие файлов в одно нажатие...

1 стартмани

30.11.2018    5999    31    Serg O.    13       

Использование подсистемы БСП "Заполнение объектов" 134

Статья Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Россия Абонемент ($m) Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем)

Применение механизмов БСП для добавления новых команд заполнения к формам различных объектов. Использование расширений конфигурации для доработки. Шаблоны для реализации собственных команд заполнения.

1 стартмани

23.11.2018    13117    8    ids79    22       

Обнуление остатков регистров бухгалтерии и накопления 41

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 v8::БУ v8::ОУ v8::УФ КА1 БП2.0 ЗУП2.5 УТ10 УПП1 УНФ БГУ ERP2 БП3.0 УТ11 УХ КА2 ЗУП3.x Россия Абонемент ($m) Универсальные обработки Чистка базы

Обработка позволяет обнулить остатки по регистру накопления или бухгалтерии на определенную дату. Поддерживается большинство типовых конфигураций (БП 3, БП 2, УТ 11, УТ 10, ЗУП 3, ЗУП 2, БГУ 2, БГУ 1, ERP, УПП, КА 2, КА 1, УХ 3, УХ 1, УНФ). Гибкая настройка (отборы, заполнение реквизитов и любых полей корр. счета, возможность обнулять ресурсы выборочно). Несколько режимов работы. Два интерфейса: простой и с расширенным набором настроек.

2 стартмани

19.11.2018    8946    171    morozov.sv    30       

Шаблон фоновой обработки данных 46

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Инструментарий разработчика

Шаблон для быстрого написания обработки большого массива данных с отображением прогресса.

1 стартмани

15.11.2018    5529    39    acsent    3       

Изображения в справке 1С 28

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования

Иногда полезно сделать скриншот и вставить его в справку. К счастью, картинку можно преобразовать в строку base64 и вставить в тег img. Выглядит это так: img src="data:image/jpg;base64,-=СТрокаИзображения=-" /img. Для редактирования можно использовать объект "форматированный документ" (реквизит формы). Данный объект может выгрузить свое содержимое в формате html и все картинки в структуру. Далее останется только преобразовать картинки в строку base64 и заменить исходные теги img.

1 стартмани

13.11.2018    4830    13    makc2k    16       

Навигатор по конфигурации базы 1С 8.3 102

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка (СДРНавигаторУпр) для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Небольшой набор сервисных функций для повседневной работы. Для программистов и пользователей. Платформа 8.3, управляемые формы. Версия 1.1.0.43 от 01.10.2019

3 стартмани

28.10.2018    15102    185    ROL32    43       

Автоматическое создание XSD-файла по выбранным типам объектов конфигурации для загрузки в XDTO пакет в 1С 8.3 88

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8::УФ 1cv8.cf Россия Абонемент ($m) WEB

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

1 стартмани

22.10.2018    6945    48    q4a    7       

Расширение для отладки дополнительных отчетов и обработок 37

Инструменты и обработки Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Абонемент ($m) Инструментарий разработчика

Универсальное расширение для упрощения отладки дополнительных отчетов и обработок. Позволяет непосредственно выполнять отладку дополнительных отчетов, обработок, печатных форм, обработок заполнения и т.п. Доступна установка точек останова и изменение обработок без загрузки в справочник.

2 стартмани

04.10.2018    8073    173    denmax    38       

Визуализация графики в 1С 48

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8::УФ 1cv8.cf Абонемент ($m) Практика программирования

Хочу предложить вашему вниманию коллекцию работающих в 1С 8.3  скриптов для эстетического или профессионального интереса.  Изучение текста этих скриптов позволит Вам использовать схожие приемы для реализации своих идей.

1 стартмани

12.09.2018    9992    26    milkers    10       

[Механизм интерфейса] Интерактивный выбор даты 24

Отчеты и формы Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

16.08.2018    6955    5    rpgshnik    18       

Управляемая консоль запросов, отчетов 3.7.5 (расширение, внешняя обработка) 361

Инструменты и обработки Программист Архив с данными v8 v8::УФ v8::Запросы v8::СКД 1cv8.cf Абонемент ($m) Консоль запросов

Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Выполнение в фоне (с возможностью отмены), Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка

1 стартмани

14.08.2018    49739    1100    Evg-Lylyk    418       

Связка 1С и Telegram. Отправка стикеров 32

Статья Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных

В качестве факультатива сейчас изучаю возможности связки 1С и мессенджера Telegram. И возник вопрос, как помимо сообщений, посылать в ответ на действия пользователя произвольный стикер? Решению этой мини задачи и посвящена данная статья.

1 стартмани

31.07.2018    7246    4    Skin123    4       

Основы компьютерной графики 23

Статья Программист Внешняя обработка (ert,epf) v8::УФ 1cv8.cf Абонемент ($m) Практика программирования

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

1 стартмани

30.07.2018    6170    7    HAMMER_59    38