Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как подружить Торг77 и Бух77?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
deskor
Кто имеет реальный опут выгрузки из торг 77 и загрузки в бух 77.
Есть в торг штатная выгрузка проводок, а в бух загрузка из тхт файла, но оно как то криво работает или вобще не работает.
Вобщем задача, из торг периодически выгружать доки которые дублируются в бух. Например расх накл, нал накл, ПКО и.тд.
Теперь подводные камни:
Справочники в торг и бух не соответствуют. Т.е. какб ы можна сделать проверку по наименованию и сделать новый элемент но тогда получится какша в справочниках, что не гуд. Также в доках один и тотже контрагент/тмц будет под разными элементами.
Терь, что можете посоветовать?

1. Найти какую то универсальную для этого обработку. (Искал толком не нашел)
2. Написать собственную обработку, но хз как лучше. (написать выгрузку в текст например справочник я еще могу, доки хз)
3. Привести в соответствие ТМЦ и контрагентов ручками в 2х базах. (геморно, но думаю без этого никак нельзя)

Короче хз как лучше поступить в данном вопросе. Подскажите плиз.
Flexy
У меня это реализовано посредством OLE.
При запуске торговли подключаются базы бухгалтерии.
deskor
Цитата(Flexy @ 28.02.11, 18:21) необходимо зарегистрироваться для просмотра ссылки
У меня это реализовано посредством OLE.
При запуске торговли подключаются базы бухгалтерии.


А поподробнее плиз.
Flexy
Создается список подключаемых баз.
В глМодуле в Процедуре ПриНачалеРаботыСистемы происходит подключение к нужной базе через ОЛЕ.
На формах нужных для выгрузки стоит флаг "ВыгрузитьВБухию".
При включенном флаге Данные выгружаются автоматом с Помощью внешней обработки ExportDoc.ert.
deskor
Цитата(Flexy @ 28.02.11, 18:37) необходимо зарегистрироваться для просмотра ссылки
Создается список подключаемых баз.
В глМодуле в Процедуре ПриНачалеРаботыСистемы происходит подключение к нужной базе через ОЛЕ.
На формах нужных для выгрузки стоит флаг "ВыгрузитьВБухию".
При включенном флаге Данные выгружаются автоматом с Помощью внешней обработки ExportDoc.ert.


Почти ясненько. Еще бы пример кода из ПриНачалеРаботыСистемы() и глянуть на ExportDoc.ert. Спасибо.
5_kopeek
У меня подобные переносы (только из одной модифицированной бухии в другую, иначе модифицированную) реализованы как выгрузки или в dbf, или в txt (загрузки оттуда же соответственно). Синхронизация ТМЦ по артикулу, единиц измерения -- по наименованию, контрагентов -- по ЕДРПОУ. Все элементы справочников, использованные в переносимых документах, выгружаются тоже, а загружаются лишь те, которые не были обнаружены при загрузке документов. Формирование файлов выгрузки и разбор их при загрузке, в основном, через методы объекта Метаданные. Идентификация реквизитов по идентификаторам, как они заданы в конфигураторе. Вам, если будете что-то подобное делать, придется еще позаботится о соответствии реквизитов разных конфигураций.
Думаю, посредством ОЛЕ будет легче реализовать.
Универсальными обработками переноса не пользуюсь -- предпочитаю писать под конкретные нужды, поэтому посоветовать не могу.

Да, забыла еще момент. В моем варианте выгружаются все документы, синхронизируются по виду, дате и номеру. При обнаружении одинаковых документов проводится поиск различий, если таковые найдены, документ модифицируется и перепроводится.
Flexy
Вот кусок с Глобального модуля
СписокПодключенныхБаз = Создатьобъект("ТаблицаЗначений");
    СписокПодключенныхБаз.НоваяКолонка("Фирма");
    СписокПодключенныхБаз.НоваяКолонка("Бух");
    СпрБазы = СоздатьОбъект("Справочник.БазыПользователя");
    СпрБазы.Использоватьвладельца(глПользователь);
    СпрБазы.ВыбратьЭлементы(1);
    Пока СпрБазы.ПолучитьЭлемент() = 1 Цикл
        Если (СпрБазы.пометкаУдаления() = 0) и (СпрБазы.Загружать = 1) Тогда
            Попытка
                Бух = "";
                База = СокрЛП(СпрБазы.Фирма.ПутьКБазеДанных);
                Бух = СоздатьОбъект("v77.Application");
                Состояние("Загружаем базу - "+ СпрБазы.Фирма + "...");
                Если Бух.Initialize(Бух.RMAccount, "/D"+СокрЛП(База)+" /N"+Польз+ " /P"+ "", "NO_SPLASH_SHOW") = 0 Тогда
                    Сообщить("Ошибка открытия бухгалтерской базы - " + СпрБазы.Фирма, "!!!");    //  RMComplex
                Иначе
                    СписокПодключенныхБаз.НоваяСтрока();
                    СписокПодключенныхБаз.Фирма = СпрБазы.Фирма;
                    СписокПодключенныхБаз.Бух = Бух;
                КонецЕсли;  
            Исключение  
                Сообщить(ОписаниеОшибки());
            конецПопытки;
        КонецЕсли;
    Конеццикла;
    Бух = "";

    Состояние("");


По поводу обработки.Пишите мыло в лычку.Я скину
Maxx
у меня тоже это реализовано через OLE. Для того, чтобы не было "каши" в справочниках ТМЦ и Контрагентов, было добавлено числовое уникальное поле в базе Тис (подразумевается выгрузка из Бух в ТиС). В этом поле можно держать либо код выгружаемого справочника, либо в Бухе тоже создать уникальное поле с автозаполнение при создании нового. Также была написана обработка, в которой через OLE сравнивались элементы справочника (Наименование+Артикул для ТМЦ, ОКПО или ИНН для Контров). То что не найдено, задаётся в ручную ОДИН РАЗ. Потом уже всё автоматом. А документы - это уже меньшее зло smile.gif Надеюсь не слишком сумбурно?
Fynjy
Я в 2003 писал во фране перенос документов через текстовый файл ... Тетя ОЛЯ тормоз ...
Ardi
Цитата(Fynjy @ 02.03.11, 20:27) необходимо зарегистрироваться для просмотра ссылки
Я в 2003 писал во фране перенос документов через текстовый файл ... Тетя ОЛЯ тормоз ...

Ну с 2003 компьютеры несколько ускорились.
А чтобы через текстовый файл работало - это две программы писать. А по оле - одну.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.