Валидация данных

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

Разработка - Инструментарий разработчика - Прочие инструменты разработчика

валидация JSON

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

Введение

Валидация данных — проверка данных на соответствие заданным условиям и ограничениям.

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

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

Постановка задачи

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

Подготовка к реализации

Нужно выполнить две простые операции:

  • сформировать необходимые данные в формате JSON
  • передать данные на сайт

Если никак не проверять данные, то процесс скорее всего будет выглядеть так:

  1. Реализовали/Исправили на стороне 1С.
  2. Отправили данные на сайт.
  3. Подождали пока разработчики сайта за нас проверят данные, оказалось, что есть какие-то проблемы.
  4. Вернулись к п.1.

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

Сам процесс валидации можно разбить на два этапа:

  • описание модели данных: типы, связи, обязательность
  • проверка данных на основе описания

Реализация

Данные выгрузки представляют собой набор таблиц, которые связаны между собой. Для упрощения, будем считать, что это следующие таблицы: Товары, Остатки, Цены.

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

Выгрузка = Новый Структура();

Выгрузка.Вставить("Товары");
Выгрузка.Вставить("Остатки");
Выгрузка.Вставить("Цены");


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

СтруктураПоля = Новый Структура("ИмяПоля, ТипПоля, ВозможенNULL, ОбязательноеЗаполнение");


Описание полей таблицы «Остатки» будет выглядеть следующим образом:

//Описываем поля

МассивПолейТаблицы = Новый Массив;
ПолеСтроки = ОписаниеСтруктурыПоля();
ПолеСтроки.ИмяПоля = "id";
ПолеСтроки.ТипПоля = Тип("Число");
ПолеСтроки.ВозможенNULL = Ложь;
ПолеСтроки.ОбязательноеЗаполнение = Истина;
МассивПолейТаблицы.Добавить(ПолеСтроки);

ПолеСтроки = ОписаниеСтруктурыПоля();
ПолеСтроки.ИмяПоля = "name";
ПолеСтроки.ТипПоля = Тип("Строка");
ПолеСтроки.ВозможенNULL = Ложь;
ПолеСтроки.ОбязательноеЗаполнение = Истина;

МассивПолейТаблицы.Добавить(ПолеСтроки);
ПолеСтроки = ОписаниеСтруктурыПоля();
ПолеСтроки.ИмяПоля = "article";
ПолеСтроки.ТипПоля = Тип("Строка");
ПолеСтроки.ВозможенNULL = Ложь;
ПолеСтроки.ОбязательноеЗаполнение = Ложь;

МассивПолейТаблицы.Добавить(ПолеСтроки);


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

Структуру описания таблицы запишем следующим образом:

СтруктураТаблицы = Новый Структура("Наименование, МассивДанных, МассивПолейТаблицы, ПоляИдентифицирующиеЗапись"
									, "", Новый Массив , Новый Массив, Новый Массив);

В целом, описание таблицы будет выглядеть так:

Функция СформироватьОписание_Товары(МассивДанных)

	СтруктураВозврата = Новый Структура("СтруктураТаблицы, МассивСтруктурСвязей",
                                        ОписаниеТаблицы(), Новый Массив);

    //Описываем поля
    МассивПолейТаблицы = Новый Массив;
    ПолеСтроки = ОписаниеСтруктурыПоля();
    ПолеСтроки.ИмяПоля = "id";
    ПолеСтроки.ТипПоля = Тип("Число");
    ПолеСтроки.ВозможенNULL = Ложь;
    ПолеСтроки.ОбязательноеЗаполнение = Истина;

    МассивПолейТаблицы.Добавить(ПолеСтроки);

    ПолеСтроки = ОписаниеСтруктурыПоля();
    ПолеСтроки.ИмяПоля = "name";
    ПолеСтроки.ТипПоля = Тип("Строка");
    ПолеСтроки.ВозможенNULL = Ложь;
    ПолеСтроки.ОбязательноеЗаполнение = Истина;

    МассивПолейТаблицы.Добавить(ПолеСтроки);

    ПолеСтроки = ОписаниеСтруктурыПоля();
    ПолеСтроки.ИмяПоля = "article";
    ПолеСтроки.ТипПоля = Тип("Строка");
    ПолеСтроки.ВозможенNULL = Ложь;
    ПолеСтроки.ОбязательноеЗаполнение = Ложь;

    МассивПолейТаблицы.Добавить(ПолеСтроки);

    //Описание таблицы и связей

    СтрокаСвязей = ОписаниеСвязейТаблиц();
    СтрокаСвязей.НаименованиеТаблицы1 =  "Товары";
    СтрокаСвязей.НаименованиеТаблицы2 =  "Остатки";
    СтрокаСвязей.ИмяКлючаТаблицы1 =  "id";
    СтрокаСвязей.ИмяКлючаТаблицы2 =  "prod_id"; 
    СтрокаСвязей.СообщениеЕслиNULLЛевоеСоединение =  "[Ошибка]Выгружены товары без остатков";
    СтруктураВозврата.МассивСтруктурСвязей.Добавить(СтрокаСвязей);

    СтрокаСвязей = ОписаниеСвязейТаблиц();
    СтрокаСвязей.НаименованиеТаблицы1 =  "Товары";
    СтрокаСвязей.НаименованиеТаблицы2 =  "Цены";
    СтрокаСвязей.ИмяКлючаТаблицы1 =  "id";
    СтрокаСвязей.ИмяКлючаТаблицы2 =  "prod_id"; 
    СтрокаСвязей.СообщениеЕслиNULLЛевоеСоединение =  "[Ошибка]Выгружены товары без цен";
    СтруктураВозврата.МассивСтруктурСвязей.Добавить(СтрокаСвязей);

    СтруктураВозврата.СтруктураТаблицы.Наименование = "Товары";
    СтруктураВозврата.СтруктураТаблицы.МассивДанных = МассивДанных;
    СтруктураВозврата.СтруктураТаблицы.МассивПолейТаблицы = МассивПолейТаблицы;

    СтруктураВозврата.СтруктураТаблицы.ПоляИдентифицирующиеЗапись.Добавить("id");

    Возврат СтруктураВозврата;

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

 

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

Таким образом, мы описываем все таблицы нашей выгрузки и связи между ними, а затем «скармливаем» полученные данные и описание функции валидации, которая производит проверку и возвращает лог с ошибками.

Функция проверки таблиц выглядит следующим образом:

Функция ПроверитьТаблицы(ДанныеСтруктура)
     
    СтруктураВозврата = Новый Структура("ОшибкиПроверкиПолей, ОшибкиПроверкиСвязей");
    МассивТаблиц = Новый Массив;
     
    РезультатПроверкаПолей = "";
    МассивТаблиц.Добавить(СформироватьОписание_Товары(ДанныеСтруктура["Товары"]));
    РезультатПроверки = ПроверитьДанныеПоПолямСтруктуры(МассивТаблиц[МассивТаблиц.ВГраница()].СтруктураТаблицы);
    РезультатПроверкаПолей = РезультатПроверкаПолей 
                        + ?(РезультатПроверки = "", "", РезультатПроверки + Символы.ПС);
                         
    МассивТаблиц.Добавить(СформироватьОписание_Остатки(ДанныеСтруктура["Остатки"]));
    РезультатПроверки = ПроверитьДанныеПоПолямСтруктуры(МассивТаблиц[МассивТаблиц.ВГраница()].СтруктураТаблицы);
    РезультатПроверкаПолей = РезультатПроверкаПолей 
                        + ?(РезультатПроверки = "", "", РезультатПроверки + Символы.ПС);
                         
    МассивТаблиц.Добавить(СформироватьОписание_Цены(ДанныеСтруктура["Цены"]));
    РезультатПроверки = ПроверитьДанныеПоПолямСтруктуры(МассивТаблиц[МассивТаблиц.ВГраница()].СтруктураТаблицы);
    РезультатПроверкаПолей = РезультатПроверкаПолей 
                        + ?(РезультатПроверки = "", "", РезультатПроверки + Символы.ПС);
                         
    РезультатПроверкаСвязей = ПроверитьСвязиТаблиц(МассивТаблиц);
     
    СтруктураВозврата.ОшибкиПроверкиПолей = РезультатПроверкаПолей;
    СтруктураВозврата.ОшибкиПроверкиСвязей = РезультатПроверкаСвязей;
     
    Возврат СтруктураВозврата;
     
КонецФункции

Заключение

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

К статье прилагается обработка для демонстрации механизма проверки данных. Тестировалась на релизе платформы: 1С:Предприятие 8.3 (8.3.14.1993).

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

Наименование Файл Версия Размер
Валидация данных
.epf 9,41Kb
01.04.20
2
.epf 9,41Kb 2 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. infosoft-v 456 01.04.20 16:33 Сейчас в теме
А почему не воспользовались xml схемами? Они же ровно для этого предназначены.
2. relines 35 01.04.20 17:08 Сейчас в теме
Если честно, такой вариант не рассматривали, т.к. у нас для обменов везде используется JSON и тогда потребовалось бы переходить как-то к XML. Плюс, насколько я понимаю, с помощью XSD схем не получится провалидировать связь между отдельнами таблицами.
sergathome; +1 Ответить
8. ovcharenko.di 04.04.20 17:30 Сейчас в теме
(2)
. у нас для обменов везде используется JSON и тогда потребовалось бы переходить как-то к XML. Плюс, насколько я понимаю, с помощью XSD схем не получится провалидировать связь между отдельнами таблицами.


а как же JSON Schema?
3. sergathome 01.04.20 18:13 Сейчас в теме
Реализация ХМЛ-схемы-преобразования + чекер непротиворечивости конкретной выгрузки... хмм велосипед, конечно, но для случая сложных взаимоотношений и обилия дураков на своей стороне, наверное, небесполезный. Сам однажды был на грани написания подобного, но удержался.
4. DrZombi 116 02.04.20 09:46 Сейчас в теме
почему вложение 2 стар мани?
что там такого особенного, что вы не смогли разложить в тексте публикации?

по мне так вы пытаетесь продать кота в мешке

...я бы свои разработки отдавал бы даром, но это запрещено ресурсом...
jONES1979; +1 Ответить
5. Rustig 1415 02.04.20 14:56 Сейчас в теме
(0)
а затем «скармливаем» полученные данные и описание функции валидации

что за функция валидации?
о ней ни слова...
6. relines 35 02.04.20 16:24 Сейчас в теме
(5) Дополнили немного статью, спасибо за замечание.
Функция валидации — самописная функция, которая выполняет по заданным правилам проверку данных и формирует лог с ошибками.
7. Rustig 1415 03.04.20 09:31 Сейчас в теме
Оставьте свое сообщение

См. также

Тестирование отчетов

Прочие инструменты разработчика v8 1cv8.cf Россия Абонемент ($m)

Обработка "Тестирование отчетов" предназначена для тестирования списка отчетов путем их сравнения в модифицируемой базе и эталонной. Для сравнения используется механизм платформы 1С "Сравнить файлы". Отличие предлагаемого решения в удобстве использования для списка отчетов.

1 стартмани

29.05.2020    282    0    keifaya    0    

Конструктор сравнения таблиц значения, в том числе из внешней базы

Прочие инструменты разработчика v8::СКД 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

28.05.2020    505    2    pavley2002    2    

PDF Extractor - извлекаем информацию из PDF с помощью Poppler

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

«Класс» - обёртка для упрощения использования возможностей Poppler из 1С. Позволяет просто извлекать информацию из PDF-файлов в виде изображений и текста.

1 стартмани

26.05.2020    1157    1    salexdv    7    

Спасение рядового Райана

Обработка документов Универсальные обработки Обработка справочников Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Бывало, что потратишь полчаса, набьёшь в документ кучу данных, а его потом не записать? И вся работа насмарку? Тогда прошу под кат.

1 стартмани

22.05.2020    604    1    the1    2    

Шаблоны внешних отчетов и обработок для обычных и управляемых форм

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

15 шаблонов внешних отчетов и обработок для обычных и управляемых форм.

1 стартмани

15.05.2020    869    28    DNN13    0    

Загрузка, редактирование и установка цветовых схем (раскраски кода) в Конфигуратор и EDT

Работа с интерфейсом Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

14.05.2020    2873    40    CyberCerber    28    

Фильтр объектов на базе СКД

Прочие инструменты разработчика v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

13.05.2020    660    2    olegarch    2    

Полезный костыль для настроек по умолчанию при разработке отчетов на СКД

Практика программирования Прочие инструменты разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

30.04.2020    1302    0    zaxarovsky    4    

Редактирование JSON в виде дерева

Прочие инструменты разработчика v8 Абонемент ($m)

Удобная обработка на 1с для редактирования и просмотра JSON. Замена онлайн сервисам просмотра и редактирования JSON. Релиз 1С, на котором выполнялось тестирование 8.3.15, но думаю будет работать и под более ранними.

1 стартмани

28.04.2020    1963    13    vladnet    11    

Контроль доработок конфигураций

Прочие инструменты разработчика v8 Абонемент ($m)

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

5 стартмани

27.04.2020    1420    2    Serge R    8    

Подсистема "Редактор Markdown 1C"

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

Подсистема для быстрого встраивания в форму редактора языка разметки markdown

2 стартмани

19.04.2020    2622    6    cprit    9    

Создание описания, добавления и чтения таблицы значений

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Иногда приходится создавать Таблицу значения (ТЗ) с большим количеством полей, описывать ТЗ вручную достаточно долго. Для автоматизации этого процесса и написана данная обработка. Данная обработка нужна только программистам.

1 стартмани

16.04.2020    1121    1    Dmitry77    4    

Отладка обработки заполнения

Прочие инструменты разработчика v8 1cv8.cf Россия Абонемент ($m)

Внешняя обработка, позволяющая отладить любую написанную вами обработку заполнения.

1 стартмани

12.04.2020    1168    5    ah7777777    0    

Быстрая функция поиска ссылки по УИД(GUID)

Поиск данных Прочие инструменты разработчика v8 1cv8.cf Россия Абонемент ($m)

Простая, а самое главное быстрая функция поиска ссылки на объект в информационной базе по УИД(GUID) через запрос.

1 стартмани

11.04.2020    3632    9    Kondratenko.as    27    

http сервис, возвращающий печатную форму

Печатные формы документов Прочие инструменты разработчика v8 УТ11 Россия Абонемент ($m)

Расширение, которое по get запросу в виде: http:///hs/WSPrint/Download/?UUID=&IDPF=&format= возвращает указанную печатную форму.

1 стартмани

09.04.2020    1460    4    user1350020    0    

Отладка шаблонов ограничений

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

26.03.2020    2879    21    vadim1980    3    

Имена таблиц на сервере

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

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

1 стартмани

19.03.2020    1590    0    alexyur    2    

Подготовка (исправление) XML схем

Прочие инструменты разработчика v8 Абонемент ($m)

Иногда, XML схемы не соответствуют стандарту w3.org и это грустно :-( . Скрипт публикации исправляет ошибки XML схем в автоматическом режиме.

1 стартмани

10.03.2020    1892    0    infosoft-v    3    

Внешний регламент для 1С

Прочие инструменты разработчика v8 Россия Абонемент ($m)

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

1 стартмани

05.03.2020    1912    4    moolex    4    

Пишем код в режиме предприятия на УФ

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

Тестирование кода прямо в режиме предприятия. Изменение документов и справочников. Управляемые формы. Сохранение и форматирование кода.

1 стартмани

27.02.2020    1853    1    HAMAZ    9    

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

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

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

2 стартмани

18.02.2020    2379    10    seregapolygon    8    

БСП - Дополнительная обработка - Заполнение объекта - Произвольный алгоритм

БСП (Библиотека стандартных подсистем) Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

13.02.2020    2009    0    duhh    2    

Эмуляция COM передачи данных через http сервис

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

Делаем расширение для конвертации 2.0 через http-сервис.

1 стартмани

11.02.2020    3279    12    sikuda    19    

Простая параллельная обработка данных

Производительность и оптимизация (HighLoad) Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Предлагаю способ быстрой параллельной обработки "неких" данных. Методика проста как дважды два. Предварительно подготовленная обработка запускается вручную в нескольких сеансах, и каждый сеанс занимается обработкой своей части (случайного диапазона). Может пригодиться для ускоренной обработки данных. К примеру, необходимо заполнить реквизит большого справочника, заполнение в один поток идёт долго, а сроки поджимают.

1 стартмани

10.02.2020    2325    1    Amadeus007    8    

Выгрузка любого запроса или таблицы значений в текст JSON

Обработка справочников WEB Универсальные функции Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

07.02.2020    4862    15    user796054    18    

Очень простая и удобная отладка внешних обработок

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

Расширение для отладки внешних отчётов и обработок в несколько кликов.

1 стартмани

07.02.2020    2838    24    for_sale    0    

Набор скриптов .bat для автообновления списка баз и версии платформы 1С

Прочие инструменты разработчика v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

23.01.2020    2252    5    ManyakRus    4    

Конструктор запросов при внешнем подключении

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

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

1 стартмани

23.01.2020    2347    2    falcon_wild    1    

Отладчик внешних печатных форм (обычное и управляемое приложение)

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

Обработка для отладки внешних печатных форм.

2 стартмани

21.01.2020    2225    16    Diana.dedov.91    0    

1C и защищенное хранение данных на блокчейне: модуль интеграции от Acryl Platform

Защита и шифрование Блокчейн Расширения Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Модуль интеграция 1С и блокчейн платформы "Acryl Platform" без использования внешних компонент. Под катом реализация механизмов Base58, Blake2b, Keccak, Curv25519 (the elliptic curve Diffie–Hellman) в подсистеме "Crypt", примеры генерации ключей, адресов, подписи транзакций, запись данных в блокчейн, чтение и восстановление данных из блокчейн. Код открыть. Лицензия MIT.

1 стартмани

21.01.2020    3936    2    ArtemSerov    17    

Редактор справки 1С

Прочие инструменты разработчика v8 Абонемент ($m)

Конфигурация для разработки справочной информации для конфигураций 1С. Тестировалось на 1С:Предприятие 8.3 (8.3.13.1690). Файловая база.

3 стартмани

16.01.2020    4862    13    lastpioneer    16    

Документация по объектам расширения конфигурации 1С

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

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

1 стартмани

14.01.2020    3429    12    ManyakRus    2    

Неиндексированные измерения регистров сведений. В помощь 1С:Эксперту

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

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

1 стартмани

07.01.2020    4863    12    Rustig    30    

Версионирование объектов 1С сторонними средствами

Прочие инструменты разработчика v8 УПП1 БП3.0 КА2 Россия Абонемент ($m)

В больших информационных системах встает острая необходимость хранения ИСТОРИИ изменений объектов. Она предоставляет материал как для проведения следственных действий, так и для инкрементарного сбора данных в data ware house из 1С конфигураций. Настоящая статья описывает способ версионирования объектов 1С, таких как Документы и Справочники средствами СУБД. Применение такого метода не вызывает рост и фрагментацию основной (рабочей) базы данных (1С) и позволяет сохранять информацию обо всех изменениях, сделанные пользователями.

1 стартмани

06.01.2020    2047    0    pit201201    0    

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

Поиск данных Прочие инструменты разработчика v8 1cv8.cf Россия Абонемент ($m)

Зачастую у программиста возникает желание работать с кодом модулей конфигурации средствами встроенного языка: так, как мы сейчас работаем с данными. Как результат реализации данной потребности и родилась данная обработка. Она предназначена для минимизации ручного труда при внесении однотипных изменений в модули конфигурации. Она представляет из себя расширение глобального поиска и замены в конфигураторе. Отличие в предоставлении ряда дополнительных возможностей, таких, как: наложение условий И, ИЛИ, НЕ; поиск только в названии процедуры / функции, либо в теле определенной процедуры / функции; управление поиском в комментариях и др.

1 стартмани

06.01.2020    2126    3    keifaya    0    

Подсистема перевода базы данных

Прочие инструменты разработчика Локализация решений v8 1cv8.cf Абонемент ($m)

В базе данных работают разноязычные пользователи и приходится писать наименования объектов сразу на нескольких языках? ЕСТЬ РЕШЕНИЕ!

2 стартмани

04.01.2020    1999    1    onec.developer    0    

Анализ подписок на события

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Внешний отчет по подпискам на события.

1 стартмани

31.12.2019    1879    3    Sergspectr    4    

Расширение для отладки внешних печатных форм

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

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

1 стартмани

31.12.2019    2230    9    Sergspectr    7    

Генератор форматированной строки (с визуальным редактором)

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Обработка позволяет создать любую форматированную строку в визуальном редакторе и сгенерировать код её программного создания.

1 стартмани

26.12.2019    4014    7    XilDen    7    

Преобразование объекта Отбор компоновки данных в Запрос

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

Преобразует объект Отбор компоновки данных в объект Запрос (с заполнением текста и параметров).

1 стартмани

20.12.2019    2424    2    okon-teh    2