Перенос данных из 1С 7.7 "Бухгалтерия" в 1С8.2/8.3 Управление торговлей для Беларуси ред.3.0/3.1



Внешняя обработка предназначена для переноса Справочников, Документов, Остатков по счетам путем непосредственного подключения к конфигурации-донору 1С 7.7 .

1) Подключение: указать пользователя, пароль, путь к базе-донору 1С 77 — проверить соединение.

Функция Подключение()

БазаОле = новый COMобъект("V77.Application");
User = ИмяПользователя;
Pass = Пароль;
Путь = ПутькБазе;
РезультатПодключения = БазаОле.Initialize(БазаОле.RMTrade,"/D" + Путь + " /N" + СокрЛП(User) + " /P" + СокрЛП(Pass) + "", "NO_SPLASH_SHOW");
Если РезультатПодключения = Ложь Тогда
сообщить("Ошибка подключения.");
Если Не РезультатПодключения Тогда
Сообщить("Не удалось подключиться к базе.
|Возможные причины:
|1. Неправильно указан каталог.
|2. Конфигурация уже открыта в монопольном режиме.
|3. Выбранный пользователь уже открыл сеанс работы в конфигурации.
|4. Предыдущий сеанс был завершен не корректно.", СтатусСообщения.ОченьВажное);

Возврат Ложь;
КонецЕсли;

иначе
сообщить("к базе подключились успешно");
Возврат Истина;

КонецЕсли;
Конецфункции

2) Перенос справочников как из ИБ, так и из предоставляемого файла Excel

Синхронизация справочников Номенклатуры осуществляется по КОДУ, если код отсутствует, поиск производится по Наименованию, если по двум реквизитам ничего не найдено , то происходит запись новой позиции номенклатуры и других ее параметров: единица измерения, цена, НДС, Старана происхождения, штрих-код  и т.д. (при наличии), если в справочнике данная позиция присутствует, тогда происходит проверка и заполнение «пустых» реквизитов.

Синхронизация Контрагентов осуществляется по УНП (для Беларуси), ИНН (для России), далее по Наименованию. Переносимые реквизиты: УНП, Наименование, Адрес, Адрес Почтовый, Контактные данные, Страна регистрации, Подчиненные справочники: Расчетные счета, Договора Контрагента.

 

3) Перенос документов: Товарные накладные, Поступление товаров. Возможность указать период переноса документов, а также возможность перезаписи существующих и их проведения.

Документы синхронизируются по дате и номеру в ИБ. Данные к переносу: Организация:Р/С, Договор, Место хранения (Склад) . Контрагент, Валюта, Номенклатура, Цена , Кол-во, Сумма, Ставка НДС, Итого с НДС.

Пример части кода по переному документов поступления:

Процедура ПеренестиПоступление(ДокИсточник)

ДокОприходование = Документы.ПоступлениеТоваровУслуг;

иНомерДок = ДокИсточник.НомерДок;
иДатаДок  = ПолучитьДатуВремяДок(ДокИсточник);
иОрганизация = НайтиОрганизацию(ФирмаОле);
НайденныйДок = ДокОприходование.НайтиПоНомеру(иНомерДок, иДатаДок);

//Переносим данные шапки

Если (ЗначениеЗаполнено(НайденныйДок)) Тогда
Если Не ПерезаписыватьНайденные Тогда
Возврат;
Иначе
НайденныйДок = НайденныйДок.ПолучитьОбъект();
КонецЕсли;
Иначе
НайденныйДок = ДокОприходование.СоздатьДокумент();
НайденныйДок.Номер = иНомерДок;
НайденныйДок.Дата = иДатаДок;
КонецЕсли;

НайденныйДок.Организация                     = иОрганизация;
НайденныйДок.Склад                            = ОпределитьСклад(ДокИсточник.МестоХранения);
НайденныйДок.Контрагент=    НайтиКонтрагента(ДокИсточник.Контрагент);
НайденныйДок.Партнер=  НайденныйДок.Контрагент.Партнер;
НайденныйДок.Валюта = НайтиВАлюту(ДокИсточник.Договор.ВАлюта.Код);
НайденныйДок.ВалютаВзаиморасчетов =НайденныйДок.Валюта  ;
НайденныйДок.ХозяйственнаяОперация=перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика;
НайденныйДок.НалогообложениеНДС=перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС;
НайденныйДок.Подразделение=Справочники.СтруктураПредприятия.НайтиПоНаименованию("основное");
НайденныйДок.ДатаПлатежа= НайденныйДок.Дата;

НайденныйДок.Комментарий = "# " +  " " +ПредставлениеДок(ДокИсточник)+ " # ";

//Переносим табличную часть
НайденныйДок.Товары.Очистить();

ДокИсточник.ВыбратьСтроки();
Пока ДокИсточник.ПолучитьСтроку() Цикл
Номенклатура = ЗагрузитьНом(ДокИсточник.Товар);
НоваяСтрока = НайденныйДок.Товары.Добавить();
НоваяСтрока.Номенклатура = Номенклатура;
НоваяСтрока.КоличествоУпаковок = ДокИсточник.Количество;
НоваяСтрока.Количество = ДокИсточник.Количество;

НоваяСтрока.Цена = ДокИсточник.Цена;
НоваяСтрока.Сумма = ДокИсточник.Сумма;
НоваяСтрока.СуммаНДС = ДокИсточник.НДС;
НоваяСтрока.СтавкаНДС=  ОпределитьСтавкуНДС(ДокИсточник.СтавкаНДС);
НоваяСтрока.СуммаСНДС=  ДокИсточник.Всего;
КонецЦикла;
НайденныйДок.Менеджер =Пользователи.ТекущийПользователь();
НайденныйДок.Записать();
Если ПроводитьДокументы Тогда
НайденныйДок.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
Сообщить("Записан документ: "+НайденныйДок);
СчетчикДоковНовых = СчетчикДоковНовых + 1;

КонецПроцедуры

КОД ОБРАБОТКИ ОТКРЫТ. Обработку можно модифицировать под Ваши нужды. Дальнейшее развитие или усовершенствование автором не планируется.

Leave a Comment

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