Равлик Владимир

29
Рейтинг

Volvo32
Владимир Равлик



  •   Регистрация: 06.11.2011 (12 лет назад)

  •   Был(а) на сайте: 26.04.2024

Подписчики 3

Рейтинг 29

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

Инструменты и обработки Для всех Платформа 1С v8.3 Украина Windows Абонемент ($m) Внешняя обработка (ert,epf) Архивирование (backup) Перенос данных 1C DevOps и автоматизация разработки

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

1 стартмани

02.09.2021    5525    2    Volvo32    1       

4

JSON: Туда и Обратно

Инструменты и обработки Программист Платформа 1С v7.7 Конфигурации 1cv7 Украина Windows Абонемент ($m) Внешняя обработка (ert,epf) Внешние источники данных

Рабочий механизм чтения/записи строк в формате JSON для 1С 7.7. Тестировалось на релизах 7.70.25 и 27.

1 стартмани

16.12.2019    22082    60    Volvo32    33       

25

Комментарии

ОбменJSON: Туда и Обратно#28 17.08.22 19:30
(27) Вы пытаетесь создать объект без идентификатора. Нужно так

СЗ.ДобавитьЗначение(Структура, "guids");
ОбменJSON: Туда и Обратно#24 09.03.22 20:52
(23)
Цитата
1000000000000001

Решение судя по всему существует. ГитХаб
Используется библиотека bignumber.js
ОбменJSON: Туда и Обратно#21 23.11.21 10:12
Дело в том, что для ТЗ в формате JSON нет однозначного соответствия. Есть Объекты - произвольный набор элементов, и есть Массивы - упорядоченный набор. В виду ограниченности сущностей, доступных в 1с 7, для преобразования были выбраны СписокЗначений и ТаблицаЗначений для указанных выше типов. Причем ТаблицыЗначений, передаваемые для сериализации, должны соответствовать принятой мной модели: иметь колонку "Значение" для хранения значений.

В Вашем случае, полагаю, должна быть ТЗ, в колонке "Значение" которой, будут расположены СписокЗначений, с элементами КодТМЦ, НаименованиеТМЦ..., а значения из строк должны быть отображены в представлении этих элементов.
AdminАвтообновление конфигурации после обмена#1 02.09.21 13:51
Да, совсем забыл.
УНФ.ОпциональныйБэкСлеш_ - функция просто проверяет наличие обратного слеша в конце строки, и добавляет при его отсутствии
AdminАвтообновление конфигурации после обмена#0 02.09.21 13:18
Рабочий механизм автоматического обновления конфигурации "периферийной" базы после получения пакета обмена. Перед обновлением выполняется резервное копирование базы данных.
ОбменJSON: Туда и Обратно#15 07.06.21 19:08
Обновил публикацию. Там все уже "всунуто". Работает. Правда при использовании данного варианта есть ограничения на форматирование строки с данными: не допускаются символы "оформления" - табуляция, перевод строки... Строка должна быть непрерывной
ОбменJSON: Туда и Обратно#13 13.04.21 8:07
Если строка оказывается слишком длинной, и при ее передаче в скрипт 1С-ка вылетает, то есть только один вариант: собирать строку по кускам "внутри" скрипта.

например вот так

Код
Функция СкриптФормироватьСтроку(прСтрПарам, прПерем, scriptCtrl) Экспорт
   Если (ПустоеЗначение(scriptCtrl) = 1) Тогда
      scriptCtrl =  СоздатьОбъект("MSScriptControl.ScriptControl");
      scriptCtrl.Language="javascript";
   КонецЕсли;
   scriptCtrl.Eval("var "+прПерем+"=''"); 
   
   лпСтрПарам = прСтрПарам;
   Пока (СтрДлина(лпСтрПарам)>0)  Цикл
      Если СтрДлина(лпСтрПарам) <= 200000 Тогда
         лпЛевСтрПарам = лпСтрПарам;
         лпСтрПарам = "";
      Иначе
         лпЛевСтрПарам = Лев(лпСтрПарам, 200000);
         лпСтрПарам = Сред(лпСтрПарам, 200001);
      КонецЕсли;
      
      лпЛевСтрПарам = СтрЗаменить(лпЛевСтрПарам,"","\");  //для JS
      
      scriptCtrl.Eval(прПерем+"="+прПерем+" + '"+лпЛевСтрПарам+"'");
   КонецЦикла;
   Возврат scriptCtrl;
КонецФункции
ОбменJSON: Туда и Обратно#11 25.12.20 9:47
(10) Это не "немного в обход". Это называется в лоб. Прямо расстроили Вы меня ((

В восьмерке почти все циклы выглядят вот так

Для Каждого ПеременнаяПриемник Из ОбъектИсточник Цикл
сообщить(ПеременнаяПриемник.Наименование);
КонецЦикла;

ОбъектИсточник - в Вашем случае, что-то вроде "ЭтотОбъект.ИМЯТАБЛИЧНОЙЧАСТИ". Имя табличной части посмотрите в конфигураторе

А ПеременнаяПриемник - очередная строка из табличной части, со всеми реквизитами
ОбменJSON: Туда и Обратно#9 21.12.20 9:53
Приятно узнать что твоя разработка используется.

Для восьмерки тоже есть вариант. Он немного изменен, но не существенно. Прикрепляю решение в этом посте.

А всем обладателям версий 8.3.6 и выше советую пользоваться глобальными ПрочитатьJSON и ЗаписатьJSON

Прикрепленные файлы:

JSON(v8).epf
ОбменJSON: Туда и Обратно#7 20.11.20 14:51
В тексте примера вкралась небольшая опечатка. Вместо переменной "фТекст", следует использовать "лпТекст". В остальном пример и основная разработка полностью работоспособны.