Универсальная выгрузка данных из 1С 7.7 в JSON

09.10.19

Интеграция - Внешние источники данных

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

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

Наименование Файл Версия Размер
Универсальная выгрузка данных из 1С 7.7 в json.:
.ert 83,50Kb
71
.ert 1.0 83,50Kb 71 Скачать

Универсальная выгрузка данных из конфигурации 7.7 в JSON, формат, который делает тривиальным процесс переноса данных в 1с 8.3 с его встроенной поддержкой.

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

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

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

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

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

1c 7.7 json выгрузка данных переход 8.3

См. также

Загрузка электронных листов нетрудоспособности (ЭЛН) в ЗиК 7.7

Зарплата Внешние источники данных Расчет 7.7 1С:Зарплата и кадры 7.7 Россия Бухгалтерский учет Абонемент ($m)

Загрузка электронных листов нетрудоспособности (электронных больничных) в ЗиК 7.7 из файлов, например, из СБИС. Не нашел похожих разработок, может, плохо искал, для 1С 7.7 ЗиК.

1 стартмани

14.04.2020    8486    4    hvv2002    2    

2

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

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

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

1 стартмани

16.12.2019    21943    60    Volvo32    33    

25

Интеграция с системой управления складом WMS Exceed-4000 (exceed-infor.ru) XML-обмен для комплексной конфигурации 1С 7.7

Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v7.7 1С:Комплексная 7.7 Оптовая торговля, дистрибуция, логистика Управленческий учет Абонемент ($m)

Обработки обмена номенклатурой (SKU), дополнительными штрихкодами (AltSku), приемкой (AdvancedShipNotice), подтверждением приема (ASNClosed), выдачей (ShipmentOrder), подтверждением выдачи (CustomerOrderLoaded) для учетной системы 1С 7.7. Здесь выгрузка и загрузка для 1C 7.7.

1 стартмани

21.10.2019    15443    1    ksnik    0    

2

Обмен с SalesWorks в 1С 7.7

Внешние источники данных Оптовая торговля Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v7.7 Россия Управленческий учет Абонемент ($m)

Обработка позволяет реализовать обмен данными между решением SalesWorks и 1c 7.7.

5 стартмани

16.07.2019    15911    6    vv-adm    2    

2

Выгрузка контактных данных контрагентов и формирование файла vcf. 1С 7.7

Внешние источники данных Оперативный учет 7.7 1С:Торговля и склад 7.7 Абонемент ($m)

Обработка выгружает данные контрагентов и создает два файла: один текстовый со всеми данными, другой формата vcards.vcf для загрузки контактных данных в андроид.

1 стартмани

10.05.2019    9444    4    rid636674    1    

0
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 3119 10.10.19 01:58 Сейчас в теме
Вот, тут на днях из дописанной ТиС в УНФ перносить надо будет. в УНФ чем загружать? каким инструментом?
5. Malice 12 10.10.19 09:30 Сейчас в теме
(1)
Грузить своей обработкой. Если кратко, то процесс такой:

&НаКлиенте
Процедура Загрузитьjson(Команда)
ЧтениеJSON = Новый ЧтениеJSON();
ЧтениеJSON.ОткрытьФайл(ЭтаФорма.Объект.файлЗагрузки, "windows-1251");
таб = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
ЗагрузитьНаСервере (таб);
КонецПроцедуры

&Насервере
процедура ЗагрузитьНаСервере (таб)
Для каждого стр из таб Цикл
если стр.свойство("ссылка") тогда // справочники
если стр.ссылка.TYPE="СправочникСсылка.НормыСписания" тогда
ЗагрузитьНормыСписанияСервер(стр);
иначеесли стр.ссылка.TYPE="СправочникСсылка.Местахранения" тогда
ЗагрузитьМестаХраненияСервер(стр);
//и т.д. для каждого вида, либо если только код+наименование +родитель - одной процедурой
конецесли;
иначеесли стр.свойство("TYPE") тогда // документы
если стр.TYPE="ДокументСсылка.ПриходнаяНакладная" тогда
ЗагрузитьДокументПриходнаяНакладная(стр, "ПриходнаяНакладная");
иначеесли стр.TYPE="ДокументСсылка.РасходнаяНакладная" тогда
// и т.д.
конецесли;
конеццикла;
конецпроцедуры

&Насервере
процедура ЗагрузитьДокументПриходнаяНакладная(стр, вид)
док="";
если не НайтиИЗаполнитьДокумент(стр, вид, док) тогда возврат; конецесли; // тут поиск. По номеру/уиду/как угодно.
шапка = стр.шапка[0];
док.Склад = Справочники.МестаХранения.НайтиПоКоду(шапка.Склад.код);
док.Клиент = Справочники.Контрагенты.НайтиПоКоду(шапка.клиент.код);
док.товары.очистить();
для каждого строка из стр.табличнаячасть цикл
товары = док.товары.Добавить();
товары.товар = справочники.Номенклатура.НайтиПоКоду(строка.Товар.код);
товары.Количество = строка.Количество;
товары.Цена = строка.цена;
товары.Сумма = строка.Сумма;
товары.НДС = строка.НДС;
конеццикла;
ЗаписатьДокумент(стр, док);
конецпроцедуры
8. CheBurator 3119 10.10.19 11:06 Сейчас в теме
(5) хорошо, конечно, на на 8-ке кодя не пишу, к сожалению. Поэтому приходится пользоваться штатными инструментами. Или инструментами более продвинутыми, но без кодирования на 8-ке.
Спасибо.

Попутный вопрос, немножко в сторону
в 77 у меня все ключевые справочники имеют GUID
можно ли выгрузив например инфу по товарам в плоский список, и воспользовавшись штатной загрузкой из табличного документа в 8-ке, загрузить так, чтобы в 8-ке у обьектов были эти же ГУИДЫ? Или как-то иначе, без программирования?
9. ksnik 578 10.10.19 11:43 Сейчас в теме
(8)
ожно ли выгрузив например инфу по товарам в плоский список, и воспользовавшись штатной загрузкой из табличного документа в 8-ке, загрузить так, чтобы в 8-ке у обьектов были эти же ГУИДЫ? Или как-то иначе, без программиров

вот пример https://infostart.ru/public/394445/
13. CheBurator 3119 10.10.19 23:42 Сейчас в теме
10. Malice 12 10.10.19 12:20 Сейчас в теме
(8)
В 7-ке и 8-ке формат uid-ов разный. Я делал 2-мя способами:
1. добавлял новый общий реквизит к объектам в 8-ке, в него писал uid7, по нему синхронизировал
2. писал uid7 в комментарий к объекту, по нему поиск при загрузке.
Без программирования как раз запись в комментарий подойдет.
12. Belomor 110 10.10.19 20:37 Сейчас в теме
(1) Держи для КД2 правила, делал когда-то, может, пригодится что
Прикрепленные файлы:
ts92_unf16.zip
Antoska; ksnik; +2 Ответить
2. CheBurator 3119 10.10.19 02:00 Сейчас в теме
И ссылку на редактор на картинке хорошо бы
4. Malice 12 10.10.19 09:18 Сейчас в теме
(2)
Ссылки на редактор:
https://www.onlinejsonconvert.com/json-editor.php
https://jsoneditoronline.org/
Нужны не для редактирования, а для проверки, что файл валидируется. Помогают при отладке, поиске ошибок. По практике - проблемы бывают из-за символов, переносимых в реквизиты копированием - табуляции, ентеры и проч. Для решения этого добавлена галка на форме - удаляет эти символы из текстовых реквизитов. Немного замедляет выгрузку (процентов на 10), если такой проблемы нет, то можно без нее.
3. Serj1C 483 10.10.19 07:51 Сейчас в теме
а чем не устроила типовая конвертация данных 2.0?
6. Malice 12 10.10.19 09:38 Сейчас в теме
(3) Типовая конвертация не работает с самописными конфигурациями. Документов было много, более 3т в сутки. Из типовых конфигураций выгрузить штатно тоже не вышло.. Висит по 2 дня, потом падает с ошибкой. Здесь формат компактнее, запись в файл через Scripting.FileSystemObject - быстрее, нет проблем с длинными строками.
14. Antoska 17 28.06.21 14:15 Сейчас в теме
(6) Это почему это не работает? Очень даже работает.
7. ksnik 578 10.10.19 10:36 Сейчас в теме
А можете выложить пример обработки в автоматическом режиме для онлайн выгрузки по регистрации изменений в базе?
11. Malice 12 10.10.19 12:29 Сейчас в теме
(7)
В принципе, можно. Алгоритм там такой:
1. Запускаем обработчик ожидания - форма.ОбработкаОжидания("Выгрузка",60*2);
2. В нем - получить список изменений - запрос к таблице 1SUPDTS
3. Вызов этой обработки с передачей списка - открытьформумодально("Отчет",список, каталогИб()+"extforms\ВыгрузитьJson.ert");
4. Удаление изменившихся объектов из списка - - запрос к таблице 1SUPDTS
5. В 8-ке по регламенту запускается обработка с загрузкой из каталога.

На больших оборотах подглючивает. 1SUPDTS фиксирует только факт изменения, не соблюдается порядок. Иногда это критично.
В результате от онлайн отказались, выгрузили/загрузили всё 1 раз.
15. markbraer 32 28.10.21 19:35 Сейчас в теме
Конфигурация ТиС 7.7 (7.70.974)
1) При попытке выгрузки Остатков пишет ошибку {UBID_1133149-ВЫГРУЗИТЬ1С77JSON.ERT(299)}: Группировка Товар <<?>> без групп;
Запрос[8] : Переменная 'Товар' не опеределена
2) При попытке выгрузки контрагентов
file.WriteLine("""Код"":"""+значение.код+"""");
{\PUBID_1133149-ВЫГРУЗИТЬ1С77JSON.ERT(124)}: Не задан вид.
16. Malice 12 01.11.21 16:43 Сейчас в теме
(15) 1. Т.к. выгрузка универсальная, для выгрузки остатков надо модифицировать запрос под конфигурацию. Свести к группировкам Склад, Товар и Остаток. Примерно так:
	ТекстЗапроса = ТекстЗапроса +
	"//{{ЗАПРОС(ТоварыЗаПериоды)
	|Склад=Регистр.ОстаткиТМЦ.Склад;
	|Товар=Регистр.ОстаткиТМЦ.Номенклатура;
	|Кол=Регистр.ОстаткиТМЦ.Количество;
	|Функция КонКол  = КонОст(Кол);";


2. Тут не понятно, посмотреть бы под отладкой. Повторить не получилось. Возможно связано с выгрузкой реквизита ЮрФизЛицо и оно не заполнено..
Оставьте свое сообщение