Обработка расширением на клиенте

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

Разработка - Универсальные функции

расширение обработка прием работы

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

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

 

Кейсы: 

  1. загрузили через XML из старой системы в ERP контрагентов, хотим массово заполнить по ИНН,
  2. хотим массово по профилям заполнить группы доступа,
  3. загрузили через XML из старой системы в ERP пользователей, хотим массово создать пользователей ИБ, что бы при этом им были предоставлены доступы согласно настройкам профилей и групп доступа
  4. и так далее

Общий принцип работы

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

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

Разработка по шагам 

Шаг 1: Создание расширения

Создадим отдельное расширение, назовем "Временные доработки", префикс "ВД_".
Лучше отдельное, потому что расширения клиента и менеджер данных (если он у Вас есть) не должны содержать в себе этот сугубо одноразовый функционал, при необходимости после обработки данных или после окончания проекта внедрения это можно за собой удалить. Кроме того созданный инструмент может пригодиться потом где-нибудь еще.
Лично я такие временные обработки "коллекционирую" в одном расширении "временные доработки", но не факт, что это правильный подход.

Шаг 2: Заимствование

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

Шаг 3: Доработка формы списка

Добавляем команду "ГрупповоеЗаполнение" (или как нравится из контекста задачи, в моем примере "ЗаполнитьПоИНН_Списком"). Команду выводим на командную панель.

У команды клиентский обработчик после (без вызова сервера)

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

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

Основной рабочий метод в форме списка "ВД_ОткрытьЗаполнить" (или как в этом примере "ВД_ЗаполнитьПоИНН_Открыть") выполняется так же на клиенте, экспортный.

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

Как работает:
метод работает как бы рекурсивно, через описание оповещения, в самом начале выводит в сообщения только что обработанный объект, выбирает первый элемент массива - его будет обрабатывать, откладывает на следующий вызов оставшуюся часть массива, выполняется, пока массив не закончится.
Можно обрабатывать с конца и оптимизировать.
Главное: при вызове формы объекта передать в нее параметр "ВД_ЗаполнитьЗаписатьЗакрыть" (или "ВД_ЗаполнитьПоИНН" как в моем примере), чтобы сообщить туда о необходимости выполнения обработки, а так же можно передать что-нибудь еще. Можно сделать создание нового, тогда вместо ключа надо передавать параметры заполнения.

Шаг 4: Доработка формы объекта

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

При создании на сервере передаем параметры в реквизиты.

При открытии если параметр"ВД_ЗаполнитьЗаписатьЗакрыть" (или "ВД_ЗаполнитьПоИНН" как в моем примере), определяющий необходимость обработки = истина, то через обработчик ожидания с задержкой 0.2 секунды вызвать основной метод, который заполнит нужные поля и обратится к нужным методам формы, после чего запишет объект с передачей ссылки и комментария (для вывода в сообщения)

при создании на сервере переносим параметр в реквизит
 

&НаСервере
Процедура ВД_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	Если Параметры.Свойство("ВД_ЗаполнитьПоИНН") Тогда
		ВД_ЗаполнитьПоИНН = Параметры.ВД_ЗаполнитьПоИНН;
	КонецЕсли;
КонецПроцедуры

при открытии запускаем обработчик ожидания (чтобы наш код выполнился в открытой и полностью инициализированной форме)

&НаКлиенте
Процедура ВД_ПриОткрытииПосле(Отказ)
	Если ВД_ЗаполнитьПоИНН Тогда
		ПодключитьОбработчикОжидания("ВД_ЗаполнитьПоИНН_Сразу", 0.2, Истина);
	КонецЕсли;
КонецПроцедуры

заполнение - основная часть данного расширения, в нем вызываются методы, которые определены только в самой форме (в данном примере нас интересуют методы "ЗаполнениеРеквизитовПоДаннымИННВозможно" и "ЗаполнитьРеквизитыКонтрагентаПоПолученнымДанным", в случае успешного выполнения записываем и закрываем)

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

&НаКлиенте
Процедура ВД_ЗаписатьСКомментариемИЗакрыть(Знач Записывать, Комментарий)
	Если ПустаяСтрока(Объект.ДополнительнаяИнформация) Тогда
		Объект.ДополнительнаяИнформация = Комментарий;
		Записывать = Истина;
	ИначеЕсли СтрНайти(Объект.ДополнительнаяИнформация, Комментарий) = 0 Тогда
		Объект.ДополнительнаяИнформация = Объект.ДополнительнаяИнформация + Символы.ПС + Комментарий;
		Записывать = Истина;
	КонецЕсли;
	Если Записывать Тогда
		Записать();
	КонецЕсли;
	Закрыть(Новый Структура("КлючДанных, Текст", Объект.Ссылка, Строка(Объект.Ссылка) + ": " + Комментарий));
КонецПроцедуры


Результат

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

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. VmvLer 31.10.19 14:40 Сейчас в теме
осилил.
субъективно: язык изложения очень костный и путанный
Yashazz; EvgenURNN; +2 Ответить
2. EvgenURNN 96 31.10.19 14:59 Сейчас в теме
(1) спасибо за замечание, добавил раздел с описанием принципа действия в целом, сегондя еще пару раз перечитаю, попробую переписать более понятным языком
3. RocKeR_13 844 31.10.19 16:05 Сейчас в теме
недокументированный прием работы с расширением

Заинтриговали, но дальше оказалось, что интриги-то и нет никакой) Скорей хитрости
4. EvgenURNN 96 31.10.19 17:06 Сейчас в теме
(3) то есть точнее назвать "Хитрый прием работы с расширением"?
5. RocKeR_13 844 31.10.19 17:11 Сейчас в теме
(4) как вариант) Можно просто опустить слово "недокументированный".
6. mangy 30 02.11.19 10:56 Сейчас в теме
1. Почему просто с помощью расширения не сделать процедуры формы экспортными и с помощью внешней обработки не обратится к ним после метода Открыть форму?
2. Для чего в данном случае используется обработчик ожидания?
EvgenURNN; +1 Ответить
7. EvgenURNN 96 02.11.19 12:44 Сейчас в теме
(6)
мысль интересная,
я так не пробовал,
мне тут подкинули еще идею упростить через "ПолучитьФорму" и в ней просто выполнить точно также экспортный метод через расширение,

Обработчик ожидания чтобы успели отработать все обработчики открытия и чтобы можно было закрыть
8. Yashazz 3582 03.11.19 23:16 Сейчас в теме
Тут уже правильно сказали - можно прямее и проще. А так, имхо, костыль.
9. Rustig 1608 09.11.19 14:58 Сейчас в теме
(0) по идее, у вас групповая обработка объектов - и по идее, групповая обработка не должна зависеть от контекста формы... в принципе....
...ваш хитрый прием придуман, чтобы не особо разбираться в коде модуля формы?
часть процедур можно сделать экспортными, вынести в модуль объекта или во внешнюю обработку - но вы почему-то посчитали, что это будет сложнее...
я не увидел "почему"... можете сложности прояснить?

а так, метод имеет право на существование....другой взгляд на решение проблем задачи...
10. Xershi 1045 18.10.20 15:04 Сейчас в теме
Проще код перенести во внешнюю обработку и такого треша не будет.
Это скорее по не опытности.
Также стоит разработчикам написать, чтобы функционал был продублирован на сервере, тогда тем более это не нужно будет заниматься.
Оставьте свое сообщение

См. также

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    77194    Serginio    110    

Выгрузка HTML описаний с картинками (Base64) товаров на сайт/интернет-магазин/B2B, разберем регулярное выражение получения тега body, ПолучитьHTML, ФорматированныйДокумент

Практика программирования WEB Универсальные функции v8 v8::УФ 1cv8.cf Бесплатно (free)

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

24.11.2020    273    SizovE    0    

Сохранение настроек

Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

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

22.11.2020    1645    the1    7    

Чтение вложенных свойств Структур Структуры, Соответствий, свойства через точку, разбор JSON

Практика программирования WEB Интеграция Универсальные функции v8 Бесплатно (free)

JSON: {user.device.type} - как получить значение {type}? А если вложенность значительно глубже? Как проверить, что оно заполнено или удалить его - всё это в публикации с открытым кодом и даже без рекурсии. Бонусом разбор дерева значений - ДанныеФормыЭлементДерева, СтрокаДереваЗначений.

17.11.2020    813    SizovE    2    

Универсальные функции с примерами использования Промо

Универсальные функции v8 Бесплатно (free)

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

26.02.2016    41495    unichkin    46    

Сохранение настроенного запроса набора данных СКД

Универсальные функции v8 v8::СКД 1cv8.cf Бесплатно (free)

Как сохранить запрос набора данных СКД в том виде, каким он будет выполнен системой для открытия в консоли запросов с диска ИТС.

09.11.2020    802    Serge R    0    

Отпускной период (период основного отпуска) - как его узнать

Зарплата Универсальные функции v8 v8::СПР v8::УФ ЗУП3.x Россия БУ Бесплатно (free)

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

26.10.2020    395    Danila7Zz    2    

Произвольные колонтитулы и повтор шапки таблицы в табличном документе (функция)

Универсальные функции v8 Бесплатно (free)

Пример рекурсивной функции, при помощи которой в табличный документ можно выводить верхний или нижний колонтитулы с произвольным содержимым, а также делать повтор шапки таблицы (или таблиц, если их несколько).

07.10.2020    1186    ellavs    1    

Минимализмы 3 Промо

Практика программирования Универсальные функции v8 Бесплатно (free)

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    47112    ildarovich    45    

Печать в word, pdf через html

Печать Практика программирования Универсальные функции v8 Россия Бесплатно (free)

При работе с клиентами возникла задача: использовать форматированный документ. Итак, существует справочник, в нем табличная часть. Для каждой строки требуется ввести описание, причем описание имеет тип форматированный документ. Потребовалось организовать печать табличной части справочника с описанием для каждой строки. Тип данных "Форматированный документ" не может выводится в табличный документ, поэтому пришлось организовывать печать через Microsoft Word.

11.09.2020    893    arr    4    

Самый простой парсинг и обработка веб-страниц в 1С

WEB Универсальные функции v8 1cv8.cf Бесплатно (free)

Рассмотрим самый простой парсинг веб-страниц средствами платформы 1С и еще некоторые полезные приемы работы с веб-страницами.

07.08.2020    5356    YPermitin    18    

Выполнение внешней обработки по расписанию для управляемого и обычного приложения

БСП (Библиотека стандартных подсистем) Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

Использование БСП для выполнения внешних обработок в управляемом и обычном приложении

06.08.2020    1999    RPGrigorev    0    

Универсальная функция для программного выполнения СКД Промо

Инструментарий разработчика Универсальные функции v8::СКД 1cv8.cf Бесплатно (free)

Часто встречаются вопросы на форумах о программном формировании СКД. Вроде и информации много по этому поводу, но... Все как всегда :) Собственно, в описании без лишних слов выложен текст общей функции, в которую, для выполнения отчета, нужно передать (минимум 2 параметра): СКД и ТабличныйДокумент.

20.05.2015    30735    dj_serega    18    

Пользовательское поле СКД одной процедурой

Практика программирования Универсальные функции v8 Бесплатно (free)

Быстрое создание пользовательского поля "выражение" одной процедурой

05.08.2020    1656    Yashazz    0    

Установка расширений в 1С 8.3

Расширения v8 1cv8.cf Россия Бесплатно (free)

Краткая инструкция, как подключить расширение конфигурации в 1С.

27.07.2020    4716    Mouros    11    

Полезные встроенные функции для работы с печатными формами и не только на УТ 11.4 и БП 3.0 (сравнение)

Универсальные функции v8 БП3.0 УТ11 Россия Бесплатно (free)

В данном обзоре приведу примеры встроенных используемых функций для работы с печатными формами на примерах конфигураций Управление торговлей 11.4 и Бухгалтерия 3.0.

10.07.2020    3498    quazare    5    

Выполнение произвольного кода в фоновых заданиях Промо

Универсальные функции v8 Бесплатно (free)

Если надо быстро провести 100`000 документов...

13.01.2016    24747    unichkin    13    

Вывод дерева в табличный документ СКД

Практика программирования Универсальные функции v8 v8::СКД Бесплатно (free)

Вывод содержимого элемента формы "ДанныеФормыДерево" в табличный документ средствами СКД.

09.07.2020    2785    Yashazz    7    

Команда "Вывести список" для динамического списка. Программное выполнение (вариант)

Универсальные функции v8::УФ 1cv8.cf Бесплатно (free)

Делаем свою кнопку вместо "Вывести список" из пункта "ещё" динамического списка.

11.06.2020    3205    DanDy    61    

Ещё немного функционального стиля в 1С или Как нам отфильтровать таблицу значений

Универсальные функции v8 Россия Бесплатно (free)

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

16.05.2020    2922    GlebHappy    34    

Распределение оплаты по товарам Промо

Практика программирования Универсальные функции v8 1cv8.cf Бесплатно (free)

Учебная задача. Оплата приходит по заказу. Требуется запросом распределить её по товарам. Практическая задача была сложнее. Упростил специально для иллюстрации. Сначала собираем в одну таблицу заказы и товары. Затем ОБЪЕДИНТЬ ВСЕ с оплатами. Потом намазываем оплату на товар.

04.08.2014    19224    Трактор    5    

Как обойти глюк механизма расширений. Пошаговая инструкция в картинках

Расширения v8 БП3.0 Бесплатно (free)

После очередного обновления Бухгалтерии 3.0 в одной очень известной фирме мне звонит наш программист 1С, который ведет эту фирму, со словами - Шеф. Все пропало. Нам конец. Наше расширение грохнулось.

26.04.2020    7250    alfanika    19    

Конвертация расширения cfe в конфигурацию сf руками

Расширения v8 1cv8.cf Бесплатно (free)

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

18.03.2020    6546    wtlz    31    

Эволюция расширения конфигурации

Расширения v8 1cv8.cf Бесплатно (free)

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

06.02.2020    10342    Xershi    40    

Сканируем без сканера или MXL to JPG Промо

Внешние источники данных Универсальные функции Печатные формы документов v8 1cv8.cf Бесплатно (free)

Хотите конвертировать документы в формат изображения менее чем за минуту, не имея сканера? Тогда эта статья для вас.

24.05.2012    34234    shakmaev    47    

Доработки объектов метаданных и форм (только кодом) с помощью расширений на примере типовых конфигураций: 1C:ERP Управление предприятием 2.4 и 1С:Альфа-Авто: Автосалон+Автосервис+Автозапчасти КОРП 6

Практика программирования Расширения v8 1cv8.cf Россия Бесплатно (free)

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

01.02.2020    2352    байт    7    

Сходство Джаро - Винклера. Нечеткое сравнение строк

Универсальные функции v8 Россия Бесплатно (free)

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

25.12.2019    7191    brooho    17    

Функция - Формат государственного номера автомобиля

Универсальные функции v8 Автомобили, автосервисы Россия Бесплатно (free)

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

23.12.2019    4028    brooho    4    

Полезности | Дерево значений | Обычные формы |

Практика программирования Универсальные функции v8 Бесплатно (free)

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

04.12.2019    5941    Mellow    7    

Использование XML-схемы из макета внешней обработки

Обмен через XML Универсальные функции v8 1cv8.cf Бесплатно (free)

Простой способ использования XML-схем из макета внешней обработки.

28.10.2019    11162    Olesia_Matusevich    10    

Быстрое создание наполненных коллекций

Практика программирования Универсальные функции v8 1cv8.cf Бесплатно (free)

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

28.10.2019    7314    SeiOkami    66    

Преобразование XML в таблицу значений или иной объект 1С методом XSL преобразования

Универсальные функции Обмен через XML v8 1cv8.cf Бесплатно (free)

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

24.10.2019    11820    kraspila    30    

Обертка функций Excel на русском. Ускорение процесса разработки.

Загрузка и выгрузка в Excel Универсальные функции v8 Бесплатно (free)

Устали переключаться с русского на английский и обратно при работе с таблицами Excel из 1С? Сборка наиболее необходимых функций и методов работы с Excel, обернутых в функции 1С на русском языке.

24.10.2019    7356    DmitryKotov    6    

Функция СтрШаблон с именованными маркерами

Универсальные функции v8 1cv8.cf Бесплатно (free)

Функция позволяет задавать именованные маркеры формата [Имя], в отличии от типовых нумерованных формата %n

1 стартмани

21.10.2019    4633    kirinalex    27    

Полезняшки по СКД и построителям. Просто код

Практика программирования Универсальные функции v8 v8::СКД Бесплатно (free)

Полезные процедуры и функции для работы с построителями и СКД. Просто исходник.

10.10.2019    10254    Yashazz    45    

Полезные процедуры и функции для программиста

Практика программирования Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

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

07.10.2019    30966    HostHost    40    

От чего можно отказаться при разработке расширений 1С

Практика программирования БСП (Библиотека стандартных подсистем) Расширения v8 Бесплатно (free)

Разработка расширений 1С и оптимизация через механизм БСП: Дополнительные отчеты и обработки.

23.09.2019    10755    independ    33    

Отслеживание выполнения фонового задания

Практика программирования Универсальные функции Разработка v8 1cv8.cf Бесплатно (free)

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    32867    ids79    16    

Сохранение запроса со всеми параметрами и временными таблицами

Универсальные функции v8 v8::УФ Россия Бесплатно (free)

Функция сохранения запроса со всеми параметрами и временными таблицами в формате *.q1c для открытия в консоли запросов с диска ИТС.

13.05.2019    6713    Serge R    5    

Добавление возможности подключения внешних отчетов и обработок к объектам конфигурации при помощи расширения

Универсальные функции v8::УФ ERP2 Бесплатно (free)

Часто приходится сталкиваться с тем, что необходимо внести изменения в типовую конфигурацию, но очень не хочется снимать её с поддержки. Для этого в 1С существует ряд инструментов. Эта короткая статья посвящена тому, как подучить возможность подключения внешних отчетов к объекту конфигурации при помощи расширения на примере 1С:ERP Управление предприятием 2 (проверено на 1С:ERP Управление предприятием 2 (2.4.6.230)).

15.04.2019    4674    user995537    0    

Иерархия справочника Сверху Вниз. Получаем произвольное количество родителей "верхнего" уровня

Практика программирования Универсальные функции Разработка v8 1cv8.cf Бесплатно (free)

Иерархия справочника Сверху Вниз. Функция для получения произвольного количества родителей "верхнего" уровня. На примере справочника "Номенклатура".

28.03.2019    6192    obsfromekb    11    

Доработка проведения типовых документов в УТ 11.4, КА 2.4, ЕРП 2.4

Практика программирования Универсальные функции Разработка v8 v8::УФ ERP2 УТ11 КА2 Россия УУ Бесплатно (free)

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

22.03.2019    18442    ids79    16    

Добавление отчетов в типовые конфигурации 1С

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

Описание различных способов добавления общих и контекстных отчетов в конфигурации 1С, построенные на базе БСП. Основные моменты и нюансы.

07.03.2019    57119    ids79    46    

Расширение конструктора мобильного рабочего места для варианта "клиент 1С+RDP" (для любых wi-fi терминалов). Экосистема решений Simple WMS

Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Универсальные функции Мобильная разработка Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ v8::УФ УУ Бесплатно (free)

Развитие проекта «Конструктор мобильного клиента на Android» https://infostart.ru/public/976636/ для устройств не на Андроиде (работающих в режиме RDP). В отличие от варианта Android работа на терминалах происходит в режиме 1С:Предприятие через RDP а конфигурации мобильных клиентов полностью совместимы для обоих версий. Т.е. конфигурация единая, создается один раз и ее может читать как Android -устройство, так и 1С-клиент на RDP без необходимости какой либо переделки.

05.02.2019    13214    informa1555    10    

Работа со строками: от простого к сложному

Практика программирования Универсальные функции v8 Бесплатно (free)

Простые примеры работы со строками, в конце более читаемый разбор сложных текстов.

14.01.2019    34608    Evg-Lylyk    21    

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

Универсальные функции v8 Бесплатно (free)

Решение проблемы несовпадения номеров колонок с номерами субконто на счете при выгрузке в таблицу значений.

14.01.2019    5703    The Ded    6