Выгрузка данных из 1C 7.7 в JSON


Платформа 1С Предприятие 7.7, несмотря на ее кажущуюся архаичность, все еще широко используется, и подчас возникает необходимость ее связи с самым различным ПО с использованием самых разнообразных методов передачи информации. Недавно меня попросили из 1С 7.7 отдать данные в формате JSON. Я поискал подобные решения и ничего не нашел. Имеющиеся решения http://infostart.ru/public/198619/ , http://infostart.ru/public/252791/ решают другую задачу — задачу разбора имеющихся JSON-данных, а все остальное посвящено платформе 1С Предприятие 8. Поэтому, в этой статье я предлагаю простую обработку по формированию файлов JSON для платформы 1С Предприятие 7.7 .

Выгрузка  данных  1С 7.7  в  JSON  реализована в виде обработки, которая запускается из любого кода 1С 7.7 строкой

ОткрытьФорму("Обработка.ВыгрузкаВJSON",ИсходныеДанные)  

В этой обработке в   процедуре ПриОткрытии()  собственно  и формируется  файл JSON в отдельной директории "ВыгрузкиJSON"  каталога информационной базы.

Как показывает практика,  для выгрузки   из 1С 7.7  любых исходных данных достаточно  небольшого числа типов данных таких как   ТаблицаЗначений, Строка, Число, Дата.  Даже сложные вложенные структуры данных   всегда можно представить с помощью одной единственной ТаблицыЗначений.  Ниже представлен простой пример формирования исходных данных для выгрузки в JSON.

ИсходныеДанные = СоздатьОбъект("ТаблицаЗначений");
ИсходныеДанные.НоваяКолонка("Ид","Строка",9);
ИсходныеДанные.НоваяКолонка("Наименование","Строка",100);
ИсходныеДанные.НоваяКолонка("Детали");
Детали = СоздатьОбъект("ТаблицаЗначений");
Детали.НоваяКолонка("ДеталиИд","Строка",9);
Детали.НоваяКолонка("ДеталиНаименование","Строка",25);
Детали.НоваяКолонка("ДеталиНомер","Строка",9);
// заполнение ИсходныеДанные
ИсходныеДанные.НоваяСтрока();
ИсходныеДанные.Ид = " 78Ц ";
ИсходныеДанные.Наименование = "Велосипед";

Детали.НоваяСтрока();
Детали.ДеталиИд = " CWЦ ";
Детали.ДеталиНаименование = "Колесо переднее";
Детали.ДеталиНомер = "N12345";
ИсходныеДанные.Детали = Детали;

 

 

10 Comments

  1. _Z1

    (0) vpaoli

    Скажите а может есть какой либо небольшой пример реального применения subj

    Reply
  2. vpaoli

    Небольшой пример уже представлен в статье — на сайт, написанный к примеру на php ( интернет магазин) выгружается велосипед и его переднее колесо …

    Reply
  3. quick

    (2) у меня работает связка 1с с веб сервисами, правда сайт на python, есть рабочая версия с json классом, есть с get / table.

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

    Reply
  4. vpaoli

    (2) (3) quick, премного благодарен конечно! сейчас наверно не стоит, занят другими делами. но буду помнить и если когда нибудь понадобится , я конечно обращусь …

    Reply
  5. Drfreeman

    При выполнении строки: «ИсходныеДанные.Детали.Загрузить(Детали)» возникает ошибка «…..Значение не представляет агрегатный объект (Загрузить)».

    Reply
  6. koliaff

    +(5) Три стармани, за неработающий код , это перебор !

    ИсходныеДанные.Детали.Загрузить(Детали);

    Значение не представляет агрегатный объект (Загрузить)

    Reply
  7. vpaoli

    (6) Не судите так строго. Представленная Обработка.ВыгрузкаВJSON не содержит ошибок. А то , что в статье приведен пример ее использования, так это бонус 🙂 . За него стартмани с вас не берут.

    Замените последнюю строчку на

    ИсходныеДанные.Детали = Детали;

    и ошибка исчезнет.

    Reply
  8. koliaff

    (7) Да уже разобрался сам, но за скаченную обработку пришлось выложить 3 стартмани. Плюс ещё самому разбираться. Как-то не корректно ) Все же заинтересованные её качают за стармани… А вдруг кто-то не знает, как её допилить — не программисты. Хотя в описании не прописано, что её надо допилить. Выложи пожалуйста сразу готовую обработку, чтобы люди не вчитывались в комментарии к обработке.

    Reply
  9. vpaoli

    (8) Обработка продается как есть и по цене, которая указана. Кому надо допиливать пусть допиливает, это разрешено автором.

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

    Reply
  10. r_strizh

    Нужна ваша помощь в выгрузке данных из 1C 7.7 в JSON напишите на почту rom_strizh mail.ru

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *