|   |   | 
| 
 | v7: Преобразовать файл правил обмена XML так, чтобы его можно было запихнуть в MXL и обратно | ☑ | ||
|---|---|---|---|---|
| 0
    
        SleepyHead гуру 09.07.18✎ 04:40 | 
        Есть старая база на 1с77, для которой писал выгрузку через КД2 в ЗУП 3.1. Обмен работает, данные выгружать нужно раз в квартал. Поэтому срабатывает чисто человеческий фактор - файл правил теряется, пути забывают. В итоге чуть ли не каждый раз достаю прикопанный у меня файл правил обмена, и высылаю клиенту, а потом еще целая история напомнить их админу, куда это файл положить. Задолбало.
 Текстовых и двоичных макетов в 1с77 нет, поэтому задумался о преобразовании в табличный документ 1с77. Одна строка табличного документа - одна строка текстового файла. И чтобы можно было потом выгрузить в текстовый файл во временном каталоге, переименовать в XML и скормить обработке выгрузки.. Пробовал несколько преобразовалок в TXT, теряют код на 1с8, прописанный в правилах обмена. Сейчас задумался, стоит ли вообще эта овчинка выделки, и можно ли преобразовать в текст построчно без потерь. Может, есть опыт такого преобразования у кого-то? Посоветуйте преобразовалки, пожалуйста. | |||
| 1
    
        Aleksey 09.07.18✎ 04:50 | 
        Почему просто нельзя считать таблицу и сохранить в текст средствами 1С? Зачем преобразовывать mxl в txt?     | |||
| 2
    
        Aleksey 09.07.18✎ 04:52 | 
        ну или 
 Записать(<?>,); Синтаксис: Записать(<ИмяФайла>,<ТипФайла>) Назначение: Записать таблицу в файл. Параметры: <ИмяФайла> - имя файла. <ТипФайла> - необязательный параметр. Числовое или строковое выражение, определяющее тип файла: · отсутствует, 0 или ''MXL'' - формат 1C; · 1 или ''XLS'' - формат Ms Excel; · 2 или ''HTM'' или ''HTML'' - формат HTML; · 3 или ''TXT'' - формат TXT. Замечание: Метод может использоваться при работе с таблицей в режиме ввода данных. | |||
| 3
    
        SleepyHead гуру 09.07.18✎ 04:59 | 
        (1) Почему бы сначала не внимательно прочитать вопрос?     | |||
| 4
    
        SleepyHead гуру 09.07.18✎ 05:00 | 
        Задача - преобразовать файл правил обмена (XML-формат) в текст построчно.     | |||
| 5
    
        Aleksey 09.07.18✎ 05:19 | 
        (4) xml это обычный текстовый файл, его не надо преобразовывать. Возъми смени расширение xml на txt вот и все преобразование     | |||
| 6
    
        SleepyHead гуру 09.07.18✎ 05:25 | 
        (5) А что он выгружается в одну строку компонентой v7plus, при выгрузке правил,ты в курсе? 
 Просьба не писать ответы, если ты не понял проблему, и не засорять тему. Все описано в (0) | |||
| 7
    
        АНДР 09.07.18✎ 06:14 | 
        Значениевстрокувнутр()
 Значениевстрокувнутр() ? | |||
| 8
    
        SleepyHead гуру 09.07.18✎ 06:27 | 
        (7) Да, но как сохранить это в конфе?
 Идея такая : выгружать файл правил обмена в текстовый файл. Вопрос - где хранить в конфигураторе 77, если там нет текстового или двоичного макета? В табличном документе обработки. Но тогда нужно как-то загнать этот текст в макет так, чтобы потом можно было выгрузить в текстовый файл. | |||
| 9
    
        АНДР 09.07.18✎ 06:35 | 
        (8) если (7) прокатывает, то
 1) получаешь текстовую строку, заносить ее в свой модуль; 2) получаешь из строки текст, его записываешь и переименовываешь. | |||
| 10
    
        Мимохожий Однако 09.07.18✎ 06:38 | 
        (0) "Пробовал несколько преобразовалок в TXT, теряют код на 1с8,". Расшифруй, что значит "теряют код"?     | |||
| 11
    
        Aleksey 09.07.18✎ 06:39 | 
        (6) Причем тут компонента v7plus? Мы же говорим про правила выгруженные из кд2
 Пару строк кода по загрузки из текстового (xml) файла с правилами в таблицу. Сохраняем эту таблицу как таблицу во внешней обработки И пару строк кода по преобразования по выгрузки в текстовый (Xml) файл В чем затык? | |||
| 12
    
        Aleksey 09.07.18✎ 06:40 | 
        Зачем тебе двоичные данные, ты же не картинку переносишь и не обработку     | |||
| 13
    
        SleepyHead гуру 09.07.18✎ 06:44 | 
        (9) дошло, спасибо, ведь простая же идея и должна быть достаточно легко реализуема. Преобразую в текст так, как мне нужно, потом вставлю в модуль в виде строки, состояющей из подстрок.     | |||
| 14
    
        SleepyHead гуру 09.07.18✎ 06:44 | 
        (10) В исходном файле код есть, в преобразованном нет.     | |||
| 15
    
        AliAksA 09.07.18✎ 08:30 | 
        (8), (9) ммм ... а вот можно ещё и с СохранитьЗначение() и ВосстановитьЗначение() поколдовать, чтобы не лазить в конфигуратор а через обработку править     | |||
| 16
    
        SleepyHead гуру 09.07.18✎ 08:48 | 
        Оказалось все еще проще. Открыл файл как текст в 1с8, сохранил как обычный текстовый документ.
 Сохранил как обычный текст с кодовой страницей Windows. Потом открыл этот текст в 1с77 и загнал его в табличный документ, все наконец получилось. Ошибка была в том, что пытался работать с этим файлом только в 1с77. | |||
| 17
    
        Aleksey 09.07.18✎ 08:54 | 
        (16)
 Табл = СоздатьОбъект("Таблица"); Стрим = СоздатьОбъект("ADODB.Stream"); Стрим.Type = 2; Стрим.charset = "windows-1251"; Стрим.Open(); Стрим.LoadFromFile("b:\ПравилаОбмена.xml"); Стрим.charset = "utf-8"; ВремТекст = СоздатьОбъект("Текст"); й=0; Пока Стрим.EOS=0 Цикл й=й+1; Табл.Область(й,1).Текст = Стрим.readText(-2); КонецЦикла; Стрим.close(); Табл.Показать(); СтримВыход=СоздатьОбъект("ADODB.Stream"); СтримВыход.Type=2; СтримВыход.charset="utf-8"; СтримВыход.LineSeparator=-1; СтримВыход.Open(); Для й = 1 по Табл.ВысотаТаблицы() Цикл СтримВыход.WriteText(Табл.Область(й,1).Текст); КонецЦикла; СтримВыход.SaveToFile("b:\ПравилаОбмена2.xml",2); | |||
| 18
    
        Aleksey 09.07.18✎ 08:56 | 
        Первая половина кода открывает табличный документ в 7-ки с загруженными правилами, попутная преобразовывая в win кодировку
 Вторая часть кода из табличного документа сохраняeт в xml файл правил в кодировки utf-8 | |||
| 19
    
        mistеr 09.07.18✎ 09:58 | 
        (0) Допилить обработку выгрузки, чтобы сама цепляла файл, который лежит рядом — слабо?     | |||
| 20
    
        Бертыш 09.07.18✎ 10:08 | 
        +19 Вот вот
 А если мосье понимает толк в извращениях, то можно либо а)Засунуть во внешнюю компоненту б)При помощи внешней компоненты compound.dll или подобных решений DOcBrowser Fara засовывать правила внутрь самой обработки и потом с помощью приёма http://catalog.mista.ru/public/115207/ Вытаскивать | |||
| 21
    
        SleepyHead гуру 09.07.18✎ 10:14 | 
        (19) А слабо тебе допилить обработку выгрузки так, чтобы она сама находила файл правил, потерянный пользователем ?     | |||
| 22
    
        SleepyHead гуру 09.07.18✎ 10:14 | 
        (19) Когда ж вы читать научитесь, прежде чем комментировать..     | |||
| 23
    
        SleepyHead гуру 09.07.18✎ 10:16 | 
        Если бы они каталоги не чистили, проблемы бы не было. Обработку я встроил в конфигурацию. Но месье 19 не читатье, по всей видимости, а писатель.     | |||
| 24
    
        mistеr 09.07.18✎ 10:16 | 
        (21) А файл обработки пользователь, значит, не теряет?     | |||
| 25
    
        mistеr 09.07.18✎ 10:18 | 
        (23) А зачем они "чистят каталоги"?
 Как они базу еще не потеряли? | |||
| 26
    
        SleepyHead гуру 09.07.18✎ 10:18 | 
        (24) А как он его потеряет, если он встроен в конфу?     | |||
| 27
    
        Бертыш 09.07.18✎ 10:22 | 
        (26) А чего тогда правила не константа с типом бесконечная строка?     | |||
| 28
    
        SleepyHead гуру 09.07.18✎ 10:23 | 
        (27) Это вариант, можно попробовать, спасибо.
 (17) спасибо, этот вариант тоже попробую. | |||
| 29
    
        SleepyHead гуру 09.07.18✎ 10:24 | 
        (27) Правила могут меняться, так что у себя мне в любом случае придется хранить преобразовалку из правил в строку.     | |||
| 30
    
        Адинэснег 09.07.18✎ 10:33 | 
        (0) ты им продавай каждый раз, начнут трепетно хранить     | |||
| 31
    
        SleepyHead гуру 09.07.18✎ 10:35 | 
        (30) Идея отличная, но увы :) Я не собираюсь вечно вариться в этом проекте.     | |||
| 32
    
        Бертыш 09.07.18✎ 10:39 | 
        Еже ли нет у них есть и есть v7plus.dll то можно положить правила на сайт и пусть себе обработка качает их при необходимости отработать     | |||
| 33
    
        SleepyHead гуру 09.07.18✎ 10:44 | 
        (17) Чтение файла почему-то теряет заголовок XML, но это не проблема.
 Как только при создании файла добавил первой строкой "<?xml version="1.0"?>", все заработало. Спасибо за помощь, объектом V7TextFile не получалось, там нет возможности указать кодировку UTF-8, в остальном методы аналогичные. | |||
| 34
    
        SleepyHead гуру 09.07.18✎ 10:44 | 
        (32) Это бюджетники. Какой там сайт, там при входе с автоматами обыскивают, а выход в интернет только особо доверенным лицам.     | |||
| 35
    
        d4rkmesa 09.07.18✎ 11:40 | 
        (22) Не надоело в каждой теме брюзжать?
 По теме, я бы сделал все в виде одной обработки в 8-ке приемнике, навроде загрузки данных из предыдущих версий. | |||
| 36
    
        SleepyHead гуру 09.07.18✎ 11:41 | 
        (35) А зачем мне делать обработку в 1с8, если есть технология КД2?     | |||
| 37
    
        Вафель 09.07.18✎ 11:43 | 
        Создай веб-сервис. поставь клиента на абонентку )))     | |||
| 38
    
        JeHer 09.07.18✎ 11:43 | 
        (36) Ну вот и тяни из 7-ки в 8-ку, подсунув в 8-ке правила обмена. Нафига действие "выгрузить" в 7-ке?     | |||
| 39
    
        SleepyHead гуру 09.07.18✎ 11:43 | 
        (37) см. 34     | |||
| 40
    
        SleepyHead гуру 09.07.18✎ 11:44 | 
        (38) Базы на разных серверах.     | |||
| 41
    
        SleepyHead гуру 09.07.18✎ 11:45 | 
        (38) Скажите, а вы точно понимаете, что такое выгрузка/загрузка через КД2 ?     | |||
| 42
    
        Вафель 09.07.18✎ 11:45 | 
        а почему просто файл рядом не класть?     | |||
| 43
    
        SleepyHead гуру 09.07.18✎ 11:45 | 
        Проблема уже решена, пошел решать следующую, всем спасибо.     | |||
| 44
    
        Бертыш 09.07.18✎ 12:52 | 
        (43) +42 . Кстати. Религия то не запрещает xml файлу изменять его стандартное расширение на другое. Если база у клиента dbf, то положить к прочим dbf и оно буде жить, цвести, пахнуть и бакапится     | |||
| 45
    
        Ёпрст гуру 09.07.18✎ 13:48 | 
        (0) в мокселе можно хранить что угодно, потом распаковывать куда надо.
 так, например http://catalog.mista.ru/public/14459/ http://catalog.mista.ru/public/70304/ | |||
| 46
    
        Ёпрст гуру 09.07.18✎ 13:54 | ||||
| 47
    
        d4rkmesa 10.07.18✎ 10:27 | 
        (36) Я именно про КД2. Подключение и вызов выгрузки из 7-ки, а затем инициализация обработки универсального обмена с загрузкой правил и файла с выгруженными данными. Удобно для пользователя, в первую очередь, если, конечно, он оплачивает все свистелки и прочее.     | |||
| 48
    
        SleepyHead гуру 10.07.18✎ 10:53 | 
        (47) Перечитайте тему. Разные сервера. ЗУП 3.1 на одном сервере, база 77 на другом. Разные админы (это я не писал), разные сети. Один с другим договаривается с трудом, молчу уж о пользователях.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |