Базовые вещи БСП, которые облегчат жизнь программисту 1С

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

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

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

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

 

Введение

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

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

В качестве платформы я использую 1С:Предприятие 8.3.17.1549 (64 бит) и последнюю конфигурацию Розница 2.3.5.32. В указанную конфигурацию встроена БСП 3.1.2.457 версии (отмечу, что не самая последняя, на момент написания статьи - последняя 3.1.3).

Итак, давайте перейдем к описанию:

 

Полезные функции и процедуры общего модуля БСП

 

Работа с данными в базе

Функция 1.1

ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты, ВыбратьРазрешенные = Ложь, КодЯзыка = Неопределено) Экспорт

Данная серверная функция позволяет получить выбранные реквизиты (Знач Реквизиты) по ссылке - Ссылка. Пример применения данной функции вот такой:

&НаСервере
Функция ОбщегоНазначенияОбр(ВыбСсылка)

 ВыбранныеРеквизитыОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВыбСсылка,"Ссылка, КассаККМ, Магазин, Организация, СуммаДокумента, СуммаВозвратов",Ложь);
 
 Возврат ВыбранныеРеквизитыОбъекта; // Возврат структуры "Ключ - значение"
 
КонецФункции

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

 

Функция 1.2

ЗначенияРеквизитовОбъектов(Ссылки, Знач Реквизиты, ВыбратьРазрешенные = Ложь) Экспорт

Более универсальная функция, повторяющая смысл предыдущей, но в качестве ссылок уже можно передавать массив. Пример такой:

&НаСервере
Функция ОбщегоНазначенияОбр()
	
 МассивСсылок = Новый Массив;
 МассивСсылок.Добавить(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("ТДРТ-000001",Дата('20160101')));
 МассивСсылок.Добавить(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("ТДРТ-000002",Дата('20160101')));
 МассивСсылок.Добавить(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("ТДРТ-000003",Дата('20160101')));

 ВыбранныеРеквизитыОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(МассивСсылок,"Ссылка, КассаККМ, Магазин, СуммаДокумента",Ложь);
 
 Возврат ВыбранныеРеквизитыОбъекта; // Возврат соответствия "Ключ - значение"
 
КонецФункции

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

 

Функция 1.3

ПроверитьПроведенностьДокументов(Знач Документы) Экспорт

Данная функция возвращает массив непроведенных документов. Если документы проведены - массив пустой. Пример использования:

&НаСервере
Функция ОбщегоНазначенияОбр()
	
 МассивСсылок = Новый Массив;
 МассивСсылок.Добавить(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("ТДРТ-000001",Дата('20160101')));
 МассивСсылок.Добавить(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("ТДРТ-000002",Дата('20160101')));
 МассивСсылок.Добавить(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("ТДРТ-000003",Дата('20160101')));

 НепроведенныеДокументы = ОбщегоНазначения.ПроверитьПроведенностьДокументов(МассивСсылок);
 
 Возврат НепроведенныеДокументы; // Возврат массив непроведенных документов
 
КонецФункции

Одна из удобных базовых функций для работы, на мой взгляд. В данном примере мне будет возвращен массив с 2 элементами, т.к. 2 документа из 3-х у меня не проведены.

ОбщегоНазначенияОбр(ВыбСсылка).Количество() // 2

 

Функция 1.4

ПровестиДокументы(Документы) Экспорт

Еще одна интересная функция, которая проводит документы, а так же возвращает массив документов с описанием ошибок, если не удалость провести:

&НаСервере
Функция ОбщегоНазначенияОбр()
	
 МассивСсылок = Новый Массив;
 МассивСсылок.Добавить(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("ТДРТ-000001",Дата('20160101')));
 МассивСсылок.Добавить(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("ТДРТ-000002",Дата('20160101')));
 МассивСсылок.Добавить(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("ТДРТ-000003",Дата('20160101')));

 НепроведенныеДокументы = ОбщегоНазначения.ПровестиДокументы(МассивСсылок);
 
 Возврат НепроведенныеДокументы; // Возврат массив непроведенных документов описанием ошибки проведения
 
КонецФункции

Здесь, функция вернула мне массив такого содержания, где видно какой документ не удалось провести и почему:

Рис.1. Элементы массива содержат структуры с описанием ошибки и ссылки.

 

 

Функция 1.5

ЕстьСсылкиНаОбъект(Знач СсылкаИлиМассивСсылок, Знач ИскатьСредиСлужебныхОбъектов = Ложь) Экспорт

Данная функция осуществляет простую проверку - есть ли ссылки на объект или нет. Возвращает "истину" или "ложь".

&НаСервере
Функция ОбщегоНазначенияОбр(ВыбСсылка)	

 Результат = ОбщегоНазначения.ЕстьСсылкиНаОбъект(ВыбСсылка);
 
 Возврат Результат; // Вернул "Истина" - тк на объект где-то есть ссылка
 
КонецФункции

 

 

Функция 1.6

МестаИспользования(Знач НаборСсылок, Знач АдресРезультата = "") Экспорт

Данная функция возвращает таблицу значений с указанием, где используется передаваемый объект:

&НаСервере
Функция ОбщегоНазначенияОбр()
	
 МассивСсылок = Новый Массив;
 МассивСсылок.Добавить(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("ТДРТ-000001",Дата('20160101')));
 МассивСсылок.Добавить(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("ТДРТ-000002",Дата('20160101')));
 МассивСсылок.Добавить(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("ТДРТ-000003",Дата('20160101')));

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

Например, документ "Отчет о розничных продажах" имеет ссылку в документе "Выемка денежных средств из кассы ККМ", что показывает нам результат этот функции:

Рис.2. Строка таблицы значений с результатом использования Ссылки. Ссылка - Данные

 

 

Работа с окружением базы

Функция 2.1

ОписанияПодсистем() Экспорт

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

&НаСервере
Функция ОбщегоНазначенияОбр()
	
 Результат = ОбщегоНазначения.ОписанияПодсистем();
 Возврат Результат; // Массив структур с описанием подсистем
 
КонецФункции

Результат такой:

Рис.3. В конфигурацию включена подсистема маркировки 10.1.18.

 

Функция 2.2

ОбщиеПараметрыБазовойФункциональности() Экспорт

Данная функция возвращает структуру с настройками базовой функциональности конфигурации. Интересным содержанием структуры является такие как МинимальнаяВерсияПлатформы и РекомендуемыйОбъемОперативнойПамяти.

Обращение к функции вот так:

&НаСервере
Функция ОбщегоНазначенияОбр()
	
 Результат = ОбщегоНазначения.ОбщиеПараметрыБазовойФункциональности();
 Возврат Результат; // Структура базовой функциональности
 
КонецФункции

 

Функция 2.3

ИнформационнаяБазаФайловая(Знач СтрокаСоединенияИнформационнойБазы = "") Экспорт

Определяем является ли информационная база файловой (Истина) или серверной (Ложь).

&НаСервере
Функция ОбщегоНазначенияОбр()
	
 Результат = ОбщегоНазначения.ИнформационнаяБазаФайловая();
 Возврат Результат; // Вернул "Истина" или "Ложь"
 
КонецФункции

 

 

Функция 2.4

ОперативнаяПамятьДоступнаяКлиентскомуПриложению() Экспорт

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

&НаСервере
Функция ОбщегоНазначенияОбр(ВыбСсылка)
	
 Результат = ОбщегоНазначения.ОперативнаяПамятьДоступнаяКлиентскомуПриложению();
 Возврат Результат; // Вернул число 3.9 гб
 
КонецФункции

 

Функция 2.5

РедакцияКонфигурации() Экспорт

Данная функция возвращает номер (строка) редакции конфигурации:

&НаСервере
Функция ОбщегоНазначенияОбр(ВыбСсылка)

 Результат = ОбщегоНазначения.РедакцияКонфигурации();
 Возврат Результат; // 2.3
 
КонецФункции

 

Функция 2.6

ЭтоWindowsКлиент() Экспорт

Данная функция возвращает Истина, если пользователь работает по windows на клиенте. Так же есть группа подобных функций, позволяющих определять где работает пользователь: ЭтоWindowsСервер(), ЭтоLinuxКлиент(), ЭтоLinuxСервер(), ЭтоMacOSКлиент(), ЭтоВебКлиент(), ЭтоМобильныйКлиент(), КлиентПодключенЧерезВебСервер(). Все функции работают через привилегированный режим.

 

Работа с датами

Функция 3.1

ПредставлениеЛокальнойДатыСоСмещением(ЛокальнаяДата) Экспорт

Данная функция возвращает дату со смещением по часовому поясу, в описании по формату  "YYYY-MM-DDThh:mm:ssTZD" :

&НаСервере
Функция ОбщегоНазначенияОбр()
	
 Результат = ОбщегоНазначения.ПредставлениеЛокальнойДатыСоСмещением(ТекущаяДата());
 
 Возврат Результат; // 2020-08-30Т15:09+08:00
 
КонецФункции

 

Функция 3.2

ИнтервалВремениСтрокой(ВремяНачала, ВремяОкончания = Неопределено) Экспорт

Полезная функция, возвращающая интервал времени строкой, в пример - вернет "1 день":

&НаСервере
Функция ОбщегоНазначенияОбр()
	
 Результат = ОбщегоНазначения.ИнтервалВремениСтрокой(ТекущаяДата()-24*60*60, ТекущаяДата());
 
 Возврат Результат; // 1 день
 
КонецФункции

 

Функция 3.3

ТекущаяДатаПользователя(ИмяПользователя = Неопределено) Экспорт

Данная функция вернет текущую дату пользователя по его имени:

&НаСервере
Функция ОбщегоНазначенияОбр()
	
 Результат = ОбщегоНазначения.ТекущаяДатаПользователя("Admin");
 
 Возврат Результат; // 30.08.2020 0:00:00
 
КонецФункции

 

Заключение

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

 

Предыдущие материалы

Так же, я прошу посмотреть мои предыдущие статьи, посвященные базовым возможностям типовых конфигураций:

Типовые методы конфигурации "Зарплата и управление персоналом", которые пригодятся каждому ЗУП программисту и не только

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

Возможности работы со строками при помощи БСП, которые должен знать каждый программист

 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Артано 676 31.08.20 02:30 Сейчас в теме
ПроверитьПроведенностьДокументов() -возвращает массив непроведенных документов из списка переданных ссылок на документы. Интересно, сколько лет нужно этим кхм... людям чтобы научиться именовать методы и объекты.
ivanov660; CyberCerber; brr; zqzq; morin; UniversaLL; davdykin; rpgshnik; +8 Ответить
2. davdykin 25 31.08.20 06:45 Сейчас в теме
(1)Я думаю переименований 5-10.. и еще штук 5 перенос из одного модуля в другой...
DrAku1a; Артано; morin; +3 Ответить
3. quazare 470 31.08.20 07:07 Сейчас в теме
По собственному применению БСП, могу сказать что методы в ней последнее время очень быстро устаревают - такая тенденция.
В частности касается работы "длительных операций".

Напишу статью в дальнейшем по применению длительных операций.
4. klimsrv 15 31.08.20 07:38 Сейчас в теме
После того как "ПолучитьНомерНаПечать" уехал в "НомерНаПечать" стараюсь не использовать как БСП, так и вообще разные типовые процедуры и функции конфигураций, становится себе дороже.
AlkB; Yashazz; Serega-artem; Azamatex; surikateg; morin; zqzq; garik79; +8 Ответить
5. Артано 676 31.08.20 09:44 Сейчас в теме
(4) Тут как раз рецепт простой. Любой вызов типового модуля или объекта, нужно оборачивать в свой метод, и если функциональность переедет, то проблем не будет особых
prince64; ubnkfl; Алексей Воробьев; +3 Ответить
7. Darklight 24 31.08.20 10:46 Сейчас в теме
6. Darklight 24 31.08.20 10:44 Сейчас в теме
(4)Может выпустить надстройку над БСП (и другими типовыми библиотеками) - где разместить функциональность в небольшом количестве ) модулей (не 1С Совместимых, зато лаконичных) - так, чтобы минимизировать последующие переносы/удаления функций - а если таковые и будут - то делать обратную совместимость (с указанием obsolete и выводом таких вызовов в ж/р (для последующего выявления и исправления в коде), можно и спец инструмент добавить - анализирующий код на предмет вызовов таких obsolete (устаревших) функций).

Именовать модули можно достаточно лаконично и обобщённо. Я бы выделил несколько общих "классов" - и сосредоточил в них функциональность - как-будто это действительно классы-расширения (хелперы - как их ещё называют в других языках). В принципе - подключив расширения IDE и препроцессор можно было бы даже реализовать авто-привязку этих функций прям к исходным обеъктам (например к документу объекту/ссылке или к печатной форме: расширение IDE бы позволяло бы видеть эти функции именно в контексте объектов которым они привязаны (через точку_, ну а далее либо делать сразу подстановку нужного вызова из общего модуля, либо оставлять так как есть - а замену уже будет делать препроцессор - например при передаче из IDE в ИБ через агента-конфигуратора - как это делает EDT, просто тут возникает доп звено трансляции).
Варианты модулей (спойлер)

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

И никакого деления на отдельные серверные и клиентские модули или модули мобильного приложения (это всё можно разделить внутри директивами препрцессора, например "#ЕСЛИ Клиент ТОГДА #КОНЕЦЕСЛИ" ).

Отдельно нужен будет модуль для универсального вызова сервера (с общей функцией универсального вызова (с преобразованием типов при необходимости), в т.ч для удобного вызова на сервере функциональности из обработок).
Отдельно нужен будет модуль для универсального фонового вызова функции (с общей функцией универсального вызова (с преобразованием типов при необходимости), несмотря на то, что есть модуль "ФоновоеЗаданиеМенеджер", в т.ч для удобного вызова в фоне функциональности из обработок).
Отдельно нужен будет модуль для универсального внешнего вызова функции (с общей функцией универсального вызова как COM таки WS соединений, с кешированием соединений, с преобразованием типов при необходимости, несмотря на то, что есть модуль "ВнешниеСоединениеМенеджер").
Отдельно можно сделать модуль для универсального вызова функции внешней компоненты (с общей функцией универсального вызова, с кешированием внешних компонент, с преобразованием типов при необходимости, несмотря на то, что есть модуль "ВнешнияКомпонентаМенеджер", в т.ч для удобного вызова во внешнем контексте функциональности из обработок).
Отдельно нужен будет модуль для универсального кешированного вызова (с общей функцией универсального вызова, с преобразованием типов при необходимости, несмотря на то, что есть модуль "КешированиеМенеджер").
Это всё-чтобы не плодить кучу лишних модулей и сделать работу с данной функциональностью наиболее удобной!

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


Можно всё это разбить даже на несколько отдельных частей - базовые и расширенные (устанавливаемые путём объединения конфигураций)

Внутри можно либо делать поддержку всех БСП (начиная с какой-то опр редакции - просто проверяя текущую редакцию и перенапрравляя вызов в нужный модуль стандартной библиотеки), либо делать скользящую поддержку (то есть для каждой версии БСП отдельно, но скорее тут тоже гибридно выйдет - например выпускать отельные библиотеки для подредакций БСП (3.0, 3.1, 3.2...), а для релизов - осуществлять уже общую поддержку внутри всех вариантов).

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

Так же можно делать модули с улучшенным функционалом - если сообщество напишет лучшие алгоритмы, чем будут в стандартных библиотеках - именовать переадресацию на их реализацию можно в таких общих модулях (устанавливаемых отдельно):
СтрокаМенеджерРасширение
СтрукутраМенеджерРасширение

Но это только для пересекающегося функционала.


И ещё - если в процессе эволюции БСП у функции меняется состав аргуменнтов
- то если в сторону расшироения - проблем нет - в переадресации дописываются новые необязательные аргументы
- если в сторону сокращения и/или изменения порядка - нужно стараться сохранить поддержку старого порядка - т.е. нужно будет проверять типы аргументов и перетасовывать их
- А вот если типы будут идентичны - тогда придётся выпускать проверять текущую версию БСП - которую задаст программист при инициализации библиотеки (а не версию из конфигурации) - если программист уже перевёл код на новую версию - то он изменит и эту версию. На переходный период - так же должны быть функции с заданной версией БСП в окончании - сначала можно будет переходить на них, потом их можно будет быстро найти заменить на без окончания-версии, когда версия БСП при инициализации сменится

Вообще тут много чего ещё можно придумать!
Например привнести поддержку элементов АОП - коли не типовые функции будут вызываться вместо типовых в самом низу иерархии вызовов (с последующей переадресацией) - то этими вызовами можно управлять более расширено!

Так же я, настоятельно бы, ввёл модуль
СобытияФормыМенеджер - через который бы осуществлял бы ручную "подписку" (и ручную инициация событий) для различных событий формы (на которые в платформе не возможно обобщённо подписаться).
Ну и вообще добавил ещё и общий модуль
СобытияМенеджер - для всех остальных событий, на которые тоже нельзя универсально подписаться (по сути - просто некоторые встроенные обработчики, но, не только платформенные - тут могут быть и БСП-шные функции)

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


ну, а если уж совсем по-хорошему - то для функций такой библиотеки можно будет создать правильные описания (комментарии) и на их основе сгенерировать справку по использованию (а-ля синтаксиис-помошник) - которой ТАК НЕ ХВАТАЕТ для БСП (и других стандартных библиотек), в которой можно будет делать поиск (и видеть для каких версий платформы и БСП предназначена та или иная функциональность - и делать фильтр по этим версиям, и не только по версия - а например по подсистемам тоже).
nporrep; dock; Артано; +3 Ответить
10. Артано 676 31.08.20 10:54 Сейчас в теме
(6) Да, разумно, правда это еще несколько слоёв абстракции, которые нужно будет поддерживать
12. Darklight 24 31.08.20 11:03 Сейчас в теме
(10)да - 1-2 слоя абстракции тут будет - да нужно будет поддерживать - но это же лучше, чем неожиданно переставший работать алгоритм - из-за того, что 1С куда-то опять перенесла/переименовала функцию или изменила её аргументы.

Хотелось бы чтобы такой проект был открытым - т.е. его смогло бы поддерживать сообщество! (например через GitHub, коли у 1C и у Infostart ещё нет такого сервиса; хотя тут лучше бы подошла функциональность Wikipedia (эдакий "wikihub.ru" - имя, увы, занято) - но такого сервиса мне вообще ещё не известно).

Да, забыл добавить - что считаю, что у каждой функции (как-минимум, которой больше 2-3-х аргументов) в такой библиотеке должна быть версия, принимающая один аргумент "Структура" - в котором должны быть все параметры - во-первых это удобно так вызывать функции с большим числом аргументов - во-вторых это надёжно при дальнейшей модификации таких функций, в-третьих их вызов, в таком виде, становится более лаконичным и понятным - т.к. все аргументы задаются поименовано! В-четвёртых, это упрощает универсальный вызов таких функций!
13. AnderWonder 24 31.08.20 11:08 Сейчас в теме
(10) (12) вы с дуба впали что-ли, никто никогда не будет страдать такой ерундой
asupsam; the1; +2 2 Ответить
14. Darklight 24 31.08.20 11:19 Сейчас в теме
(13)Ну почему - свою БСП (А1Э) тут уже предлагали - не вижу в этом ничего плохого! Если 1С скатывается в помойку - то спасение утопающих - дело рук самих утопающих! Разработка такой библиотеки-прослойки не такая уж сложная задача - ведь речь не идёт и том, чтобы полностью переписать БСП - а речь только об организации статической прослойки-переадресации - и её можно делать постепенно - расширяя охват стандартных библиотек! А если сообщество будет это делать сообщая - то это куда лучше - чем каждый будет это делать для себя - как в (5) или вообще стараться не использовать БСП и писать всё самостоятельно (возможно дёргая код из БСП) как предложено в (4). Ну а будь хорошая справка (а-ля синтаксис-помощник с удобными фильтрами и поиском) - то и не возникла бы такая статья как эта (потому-что для очень многих - БСП сейчас как чёрный ящик с запутанным кодом, в котором сложно разбираться, который сложно устанавливать и поддерживать) - вот и не особо хотят с ним связываться!

Вот на других платформах (языках) сообщество часто рождает свои-параллельные наборы библиотек - как раз когда стандартные это сообщество не очень удовлетворяют! И ничего - бредом это никто не считает - наоборот - это эволюция! Зачастую - подталкивающая к развития и стандартные библиотеки! Которые, правда, в отличии от 1С, обычно гораздо более консервативны!
1С - это просто ХАОС - может даже в рамках разных билдов одного релиза менять API своих библиотек - а это вообще кошмар!

Когда, по хорошему, в рамках одной подредакции должна соблюдаться прочти 100% обратная совместимость (исключение - только критичные ошибки). А в рамках одной редакции - должна, как можно статичнее, выдерживаться общая линия выстраивания API этой редакции - без существенных перестановок алгоритмов!
leoxz; BackinSoda; Артано; +3 Ответить
15. AnderWonder 24 31.08.20 11:25 Сейчас в теме
(14) в том-то и дело, что предлагают много лет, но только результата нет - не думали почему? А ответ прост: слишком большие трудозатраты. Только новичек может с пылу жару решить - а напишу ка свою БСП - идеальную и оптимальную для всеобщего счасться!))) Профи то знают на самом деле что почем. К тому же БСП на самом деле не так уж плоха, поэтому нет смысла особо дергаться.
16. Darklight 24 31.08.20 11:27 Сейчас в теме
(15)БСП ужасна - и с каждым годом только хуже (как и весь типовой код, в принципе). А постоянные переносы/удаления - это просто кошмар! На мой взгляд - этот гнойный нарыв созрел - уже пора его лечить!
17. AnderWonder 24 31.08.20 11:33 Сейчас в теме
(16) этот "гнойный нарыв" спокойно переживет любое лечение, если таковое вообще когда-либо будет)
ubnkfl; asupsam; the1; +3 Ответить
18. Darklight 24 31.08.20 11:34 Сейчас в теме
(17)Отравляя, убивая и отпугивая разработчиков от инфраструктуоы 1С
20. AnderWonder 24 31.08.20 11:42 Сейчас в теме
(18) 1. А никто и не обещал что будет легко) 2. Профи таким не напугаешь, а если это отгоняет всяких демпингующих начинающих то для нас это только хорошо.
И между прочим, вы бы посмотрели на библиотеки в той же Java - по сравнению с некоторыми из них БСП покажется воплощением разума и порядка.
asupsam; nporrep; +2 Ответить
22. Darklight 24 31.08.20 16:37 Сейчас в теме
(20)
А никто и не обещал что будет легко)

Точно так же можно ответить и на Ваш пост (15)

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

Ручной обработки функций БСП тут не так уж много - всё связано только с классификацией и постепенным написанием нового кода к ним текстовых описаний - что по силе сообществу при публикации в общий доступ такой конфигурации (или организации web-сайта).

Постепенно можно повышать качество алгоритмов автогенерации.

В этот инструмент далее нужно добавить алгоритм сравнения версий сигнатур функций из разных версий БСП - с отчётом о выявленных расхождениях - и быстрыми средствами для генерации заплаток! Ну и для быстрого выявления и добавления новых функций БСП (и других библиотек).


ну а про инструмент поиска мест использования устаревших функций (помеченных именно как obsolete) я уже писал - тут тоже ничего сложного!


Так можно обрабатывать таким инструментом не только БСП и стандартные библиотеки - а вообще любые библиотеки - и навешать на это инструмент много дополнительных расширений функционала для ещё более полезного и широкого применения при обработке не только типового но и не типового кода!

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

А редактировать всё сообща - через предложения и голосования - потипо того, как устроена wikipedia
А потом на основе таких общих решений - генерировать pull-реквксты на Github

Тогда сообщество само может влиять на качество такой библиотеки (конечно под присмотром опытных кураторов)!

По такому пути и на той же инфораструктуре можно дальше разрабатывать и модифицировать и не типовые библиотеки!
23. AnderWonder 24 31.08.20 17:22 Сейчас в теме
(22)
А вообще-то, нет тут ничего сложного - сделать спец конфу по разбору функций типовых модулей и автогенерации для них обёрток

ваша наивность прям таки умиляет. Вернемся к этому обсуждению года через 3.
Eriksson; +1 Ответить
24. Darklight 24 31.08.20 17:43 Сейчас в теме
(6)Префиксы к именам общих модулей, наверное, всё-таки стоит добавить. Особенно учитывая, что ставиться такая прослойка, скорее всего, будет через расширение конфигурации.

Вот только мне КРАЙНЕ НЕ НРАВЯТСЯ ПРЕФИКСЫ СЛЕВА ОТ ИМЕНИ СУЩНОСТИ - Я ЗА ПРЕФИКСЫ В ВИДЕ ОКОНЧАНИЙ - тогда будет как-то так:
СправочникМенеджер_НеБСП
ДокументМенеджер_НеБСП
РегистрСведенийМенеджер_НеБСП
....

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

Префикс СПРАВА - это гораздо удобнее при использовании всплывающих подсказок и ручном наборе тоже!
Я всегда делаю префиксы только СПРАВА!

Префикс "_НеБСП" - это как отсылка к "NoSQL" - т.е. мы пойдём иным путём! ;-)
о можно и другой префикс выбрать, например "_Не1С" :-D

Ещё - у расширений нет пространств имён - поэтому формально каждое расширение должно иметь свой уникальный префикс - это крайне неудобно - поэтому если данная remap-прослойка-библиотека будет составной из нескольких конфигураций - то они должны все сливаться через объединение в одну конфигурацию-расширение с единым префиксом содержимого!
По идеи - пересечения функций должны быть практически исключены - либо должен, в описании, быть задан приоритет установки с замещением или иные пометки - когда нужно вручную совмещать код!

Префиксы - это ЗЛО - 1С с этим боролась и снова напоролась - нужны пространства имён!
Эх... если бы платформа 1С поддерживала ссылки на процедуры/функции - то можно было бы через них сделать эмуляцию пространств имён, и, в т.ч., вложенные пространства имён!

Впрочем, вложенные пространства имён отчасти эмулировать можно через вызов функции - возвращающей ссылку на другой модуль (и так с произвольным уровнем вложенности) - но это не очень красиво архитектурно!
Артано; +1 Ответить
30. Cyberhawk 123 03.09.20 11:05 Сейчас в теме
(24)
мне КРАЙНЕ НЕ НРАВЯТСЯ ПРЕФИКСЫ СЛЕВА ОТ ИМЕНИ СУЩНОСТИ - Я ЗА ПРЕФИКСЫ В ВИДЕ ОКОНЧАНИЙ
Это называется "суффиксы" или (на худой конец) - "постфиксы"
athena; МимохожийОднако; +2 Ответить
31. Darklight 24 03.09.20 11:28 Сейчас в теме
(30)Я знаю, но вот решил выразиться именно, Вы уж простите
19. sys1c 31.08.20 11:41 Сейчас в теме
(4)а еще бывает функция устаревает, они пишут
//не использовать
а часть кода конфигурации все равно в нее ссылается.
в УТ 11.4 такое встречал
21. Darklight 24 31.08.20 16:36 Сейчас в теме
(19)Я вот сегодня наткнулся на функцию, которую просто внутри заремили и никаких больше приписок не сделали - т.е. после обновления - функция тупо стала возвращать "неопределено" (причём ранее - для неё это было почти легитимно-допустимым значением для возврата), и оставили в общем модуле в таком виде.
Вот и разбирайся потом - почему алгоритм стал работать иначе! Причём без ошибок - просто иначе!
А я тут желал чтобы в ж/р по таким функциям сообщения писались - до такого 1С вообще ещё не скоро дорастёт!

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

А пока налицо - полное неуважение к программистам и к пользователям - у которых это всё потом будет выливаться в ошибки и лишние затраты времени!

Вот надо ещё в стандарт "1С Сомевтимо" внести правило - запрещающие использовать obsolete функции, и почаще проверять хотя бы типовые конфигурации на выполнение этих правил!
25. the1 620 31.08.20 19:39 Сейчас в теме
(21) И тут Остапа понесло)
AnderWonder; +1 Ответить
27. Артано 676 01.09.20 06:39 Сейчас в теме
(21) типовые конфигурации проверку на 1с Совместимо не проходят, и кажется, никогда не проходили. Многие тиражки с лейблом, спустя определенное время после присвоения, тоже начинают набирать ошибки как снежный ком.
28. Drivingblind 132 01.09.20 11:34 Сейчас в теме
(4) подобная ситуация с "ОбщегоНазначенияКлиентСервер.СообщитьПользователю". Его разделили на "ОбщегоНазначенияКлиент" и "ОбщегоНазначенияСервер" в новых релизах БСП
8. AnderWonder 24 31.08.20 10:47 Сейчас в теме
Бесполезная информация и вот почему.
1. Описание достойное Капитана Очевидности - "Функция 2.3 ..ИнформационнаяБазаФайловая.. Определяем является ли информационная база файловой" - какая неожиданность! Практически все функции БСП не нуждаются в доп. описании, их названия говорят сами за себя ну и уж если возникнет необходимость, то проще прочитать описание в модуле или глянуть в код.
2. Описана незначительная часть функций. Да и не нужно их описывать, все есть в модулях и документации к БСП.
3. Несколько версий БСП, с разными программными интерфейсами. При этом 3-я линейка далеко не самая распространенная.
asupsam; Поручик; nporrep; artbear; +4 2 Ответить
26. Yashazz 3519 31.08.20 23:27 Сейчас в теме
(8) Вдобавок, это всё почти чистый копилефт из официального описания, каковое уж для 80-90% разработчиков давно на сайте доступно. Да, там оно тоже напрочь устаревшее и совершенно неактуальное, но зато подробно)

Бесполезная публикация, сбор хайпа и плюсиков и никакого практического эффекта.
Йожкин Кот; asupsam; +2 Ответить
9. Поручик 4438 31.08.20 10:48 Сейчас в теме
Делали БСП для упрощения работы, оказалось для геморроя.
Summer_13; Drivingblind; morin; sys1c; Serega-artem; ivanov660; Azamatex; Darklight; +8 1 Ответить
11. AnderWonder 24 31.08.20 11:00 Сейчас в теме
(9) все же геморрой от использования БСП чаще гораздо меньше геморроя когда без него. А проблемы его типичны для большинства программных библиотек.
Ali1976; ubnkfl; kalyaka; o.nikolaev; nporrep; +5 Ответить
29. Casey1984 3 03.09.20 08:20 Сейчас в теме
Еще часто использую ОбщегоНазначения.СсылкаСуществует(ПроверяемаяСсылка), возвращает Булево - Истина, если ссылка не битая и не пустая.
33. МимохожийОднако 130 06.09.20 07:28 Сейчас в теме
Было бы интересно увидеть статью "Как находить нужные функции в БСП?"
benzol45; +1 Ответить
Оставьте свое сообщение

См. также

Использование программных перечислений, ч.1: строковые константы Промо

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

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    37613    unichkin    74    

Полезные функции БСП (Часть 2)

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

Список полезных функций из состава Библиотеки стандартных подсистем 3.1.

10.03.2020    12552    user5300    18    

Программная работа с настройками СКД

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

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

27.01.2020    28593    ids79    26    

[СКД] Программное создание схемы компоновки данных

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

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    25146    John_d    22    

Вспомогательные инструкции в коде 1С Промо

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

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    30707    tormozit    100    

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

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

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    19314    kuzyara    33    

30 задач. Странных и не очень

Практика программирования v8 Бесплатно (free)

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    17404    YPermitin    72    

Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

Практика программирования v8 Бесплатно (free)

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

22.11.2019    8631    Sibars    19    

Оформление и рефакторинг сложных логических выражений Промо

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

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

20.09.2012    78304    tormozit    131    

Шпаргалка (БСП). Добавление в новый документ механизма печати дополнительных печатных форм

Печать БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

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

10.10.2019    18068    John_d    16    

Таблица значений. Нюансы

Практика программирования v8 Бесплатно (free)

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    34522    Yashazz    50    

О программе Postman для тестирования API и для чего она нужна 1С-нику

Практика программирования Программное обеспечение (software) v8 Бесплатно (free)

Для чего нужна программа Postman для тестирования API и какая от него польза для 1С-программиста.

24.09.2019    12355    budidich    28    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

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

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007    48774    tormozit    41    

[Шпаргалка] Программное создание элементов формы

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

Программное создание практически всех популярных элементов формы.

06.09.2019    52743    rpgshnik    63    

Агрегатные функции СКД, о которых мало кто знает

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

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    51045    ids79    54    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    29396    YPermitin    24    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

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

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    45157    tormozit    74    

Три костыля. Сказ про фокусы в коде

Практика программирования v8 Бесплатно (free)

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

03.09.2019    25812    YPermitin    80    

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

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

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

17.08.2019    32170    ids79    16    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

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

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    86801    ids79    49    

Выгрузка документа по условию Промо

Практика программирования Разработка v8 Бесплатно (free)

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    16148    m-rv    2    

Фоновое выполнение кода в 1С - это просто

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

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

02.08.2019    37030    avalakh    22    

Разбираемся с параметрами редактирования СКД

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

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019    24867    json    14    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

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

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    62599    ids79    12    

Как прикрутить ГУИД к регистру сведений Промо

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

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

16.04.2019    20438    m-rv    17    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    36622    ids79    27    

Регистры сведений. За кулисами

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

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    26533    YPermitin    14    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования Разработка v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    19829    SeiOkami    50    

Как сделать запрос на изменение данных Промо

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

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    30983    m-rv    21    

Работа с настройками системы компоновки данных

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

Варианты отчетов, работа с настройками вариантов: структура группировок, поля отчета, отборы, сортировка, условное оформление, другие настройки, настройки отображения диаграмм.

02.07.2019    48770    ids79    17    

Создание отчетов с помощью СКД - основные понятия и элементы

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

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    54119    ids79    25    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    25533    dmurk    145    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

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

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

05.12.2017    28385    itriot11    34    

Подсистема "Варианты отчетов". Используете ли Вы ее правильно?

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

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    42550    YPermitin    52    

Подсистема БСП «Управление доступом», основные объекты и регистры

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

Основные принципы работы подсистемы «Управление доступом» из состава БСП. Виды доступа, ограничение доступа на уровне записей. Описание основных объектов и регистров, используемых подсистемой.

23.05.2019    22672    ids79    9    

Регистры накопления. Структура хранения в базе данных

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

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

16.05.2019    44310    YPermitin    30    

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

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

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

27.01.2016    76819    Serginio    108    

О расширениях замолвите слово...

Практика программирования Разработка v8 Бесплатно (free)

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    35854    ellavs    126    

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Практика программирования v8 Бесплатно (free)

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    27669    ellavs    90    

Трюки с внешними источниками данных

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

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    31839    YPermitin    53    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

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

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    35328    ids79    40    

Ошибки при работе с хранилищем конфигурации и способы их решения

Практика программирования v8 Бесплатно (free)

В статье собраны наиболее распространенные ошибки при работе с хранилищем конфигурации и способы их обхода и решения.

01.03.2019    40764    Смешной 1С    29    

Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure. Автоматизация запуска сценариев

Практика программирования Vanessa Automation v8 Россия Бесплатно (free)

Формируем отчетность о результатах выполнения сценариев. Автоматизируем запуск.

26.02.2019    22523    Vladimir Litvinenko    27    

Тестер: частые вопросы Промо

Практика программирования v8 Бесплатно (free)

Ошибкам бой - тесты норма жизни!

25.07.2018    29437    grumagargler    28    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

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

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    40876    ids79    9    

Ускоряем 1С: модули с повторным использованием возвращаемых значений Промо

Практика программирования v8 Бесплатно (free)

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

04.09.2017    53189    m-rv    61    

EnterpriseData – часть 2. Процесс выгрузки данных

Практика программирования Обмен через XML v8 v8::УФ Россия Бесплатно (free)

Основные этапы выгрузки данных через ED, обработчики событий выгрузки, правила обработки данных, правила конвертации объектов, конвертация свойств первого и второго этапов, процедуры БСП, используемые при выгрузке данных, структура «КомпонентыОбмена».

26.12.2018    27292    ids79    31    

Новый подход к обмену данными EnterpriseData

Практика программирования Обмен через XML v8 v8::УФ Россия Бесплатно (free)

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

14.12.2018    42240    ids79    72