Пример интеграции с 1С v.7.7
Материал из BiTel WiKi
Lda (Обсуждение | вклад) |
DimOn (Обсуждение | вклад) м («Пример интергации с 1С v.7.7» переименована в «Пример интеграции с 1С v.7.7»: опечатка) |
||
(23 промежуточные версии не показаны) | |||
Строка 2: | Строка 2: | ||
== Подготовка == | == Подготовка == | ||
+ | |||
Заходим в 1С конфигуратор, открываем конфигурацию и в разделе "Справочники" создаем новый стправочник "BGB". | Заходим в 1С конфигуратор, открываем конфигурацию и в разделе "Справочники" создаем новый стправочник "BGB". | ||
Строка 15: | Строка 16: | ||
Далее открываем 1С, заходим в "Справочники"->"Контрагенты" и создаем две группы. Одну для физических лиц, а другую для юридических. | Далее открываем 1С, заходим в "Справочники"->"Контрагенты" и создаем две группы. Одну для физических лиц, а другую для юридических. | ||
- | |||
- | |||
- | |||
- | |||
Отредактируйте функцию Init() | Отредактируйте функцию Init() | ||
<pre> | <pre> | ||
Процедура Init() | Процедура Init() | ||
- | BGBHost = "10.0. | + | BGBHost = "10.0.2.225"; |
BGBUsername = "1c"; | BGBUsername = "1c"; | ||
BGBPassword = "1c"; | BGBPassword = "1c"; | ||
КодГруппыКонтрагентовЮрЛица = "00000010"; | КодГруппыКонтрагентовЮрЛица = "00000010"; | ||
КодГруппыКонтрагентовФизЛица = "00000205"; | КодГруппыКонтрагентовФизЛица = "00000205"; | ||
+ | |||
+ | MySQLHost = BGBHost; | ||
+ | MySQLUsername = "root"; | ||
+ | MySQLPassword = "root"; | ||
+ | TmpDir = "C:\tmp\"; | ||
+ | |||
+ | BuhModuleID = 8; // ID модуля бухгалтери | ||
+ | |||
+ | ДатаСозданияСчета = ТекущаяДата(); | ||
+ | ДатаСозданияСчетФактуры = ТекущаяДата(); | ||
КонецПроцедуры | КонецПроцедуры | ||
- | |||
</pre> | </pre> | ||
+ | Установите ODBC драйвер для MySQL, если он не установлен. | ||
+ | == Импорт договоров == | ||
+ | [[Изображение:Import.jpg]] | ||
+ | Обратите внимание на вызовы функции ПолучитьПараметрДоговора(), укажите свои коды параметров. | ||
+ | Например: | ||
+ | <pre> | ||
+ | НаименованиеАбонента = ПолучитьПараметрДоговора(ПараметрыДоговора, 2); | ||
+ | ПолнНаименованиеАбонента = ПолучитьПараметрДоговора(ПараметрыДоговора, 3); | ||
+ | ИНН = ПолучитьПараметрДоговора(ПараметрыДоговора, 17); | ||
+ | КПП = ПолучитьПараметрДоговора(ПараметрыДоговора, 18); | ||
+ | ЮридическийАдрес = ПолучитьПараметрДоговора(ПараметрыДоговора, 42); | ||
+ | ПочтовыйАдрес = ПолучитьПараметрДоговора(ПараметрыДоговора, 43); | ||
+ | Телефоны = ПолучитьПараметрДоговора(ПараметрыДоговора, 5); | ||
+ | ОКПО = ПолучитьПараметрДоговора(ПараметрыДоговора, 19); | ||
+ | РасСчет = ПолучитьПараметрДоговора(ПараметрыДоговора, 26); | ||
+ | СерияНомерДокумента = ПолучитьПараметрДоговора(ПараметрыДоговора, 32); | ||
+ | ДокументКемВыдан = ПолучитьПараметрДоговора(ПараметрыДоговора, 33); | ||
+ | Прописка = ПолучитьПараметрДоговора(ПараметрыДоговора, 45); | ||
+ | ДатаВыдачиДокумента = ПолучитьПараметрДоговора(ПараметрыДоговора, 34); | ||
+ | </pre> | ||
+ | == Создание счетов == | ||
+ | [[Изображение:bill.jpg]] | ||
+ | Типы документов жестко прописаны в коде, при необходимости измените id документов. | ||
+ | Генерация счетов сделана по аналогии с модулем Bill. | ||
+ | Для создания документов выберите типы документов и дату создания. Нашмите сгенерировать и потом создать. Если нужно пересоздать докумен, то поставте галочку "Обновить данные". | ||
+ | Защита от дубликатов строится на принципе, что один тип документа может быть создан только один раз за месяц. | ||
+ | Для того чтобы счета нумеровались 1С-ой необходимо в конфигурации модуля bill указать bill.fullnumberformat=БезНомера. | ||
+ | Для того чтобы счета нумеровались биллингом поменяете в конфиругации модуля bill параметр bill.fullnumberformat на отличный от "БезНомера" и закомментируйте создание счетов с 1с-ке в функции ИмпортСчетовBGB() | ||
+ | <pre> | ||
+ | Процедура ИмпортСчетовBGB() | ||
+ | ОбновитьДанные = 0; | ||
+ | Если ОбновитьДанныеПриИмпортеСчетов = 1 Тогда | ||
+ | ОбновитьДанные = 1 | ||
+ | КонецЕсли; | ||
+ | |||
+ | ТекСтрока = СписокСчетовBGB.ТекущаяСтрока(); | ||
+ | КолСтрок = СписокСчетовBGB.КоличествоСтрок(); | ||
+ | Если КолСтрок=0 Тогда | ||
+ | Возврат; | ||
+ | КонецЕсли; | ||
+ | Пока ТекСтрока<=КолСтрок Цикл | ||
+ | НачатьТранзакцию(); | ||
+ | Данные = СписокСчетовBGB.ПолучитьЗначение(ТекСтрока,"data"); | ||
+ | СчетBGBid = СоздатьСчетBGB(Данные, ДатаСозданияСчета, ОбновитьДанные); | ||
+ | // СоздатьСчет1с(СчетBGBid, ОбновитьДанные); | ||
+ | ТекСтрока = ТекСтрока + 1; | ||
+ | СписокСчетовBGB.ТекущаяСтрока(ТекСтрока); | ||
+ | ЗафиксироватьТранзакцию(); | ||
+ | КонецЦикла; | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | </pre> | ||
+ | == Создание счет-фактур и актов == | ||
+ | [[Изображение:bill2.jpg]] | ||
+ | Генерация счет-фактур и актов сделана по аналогии с модулем Bill. Счет-фактура и акт создаются в биллинге разными документами. Нумерация производится 1С-ой. | ||
+ | Защита от дубликатов строится на принципе, что один тип документа может быть создан только один раз за месяц. | ||
+ | В конфигурации модуля bill укажите invoice.fullnumberformat=БезНомера | ||
+ | == Обработка == | ||
+ | Не надо воспринимать данную статью как готовое решение, это всего лишь небольшой пример интеграции с 1С 7.7. | ||
+ | Данный подход не идеален, так как модуль bill не приспособлен к подобным вещам да и обработка создавалась на скорую руку. | ||
- | + | Обрабока: [[Медиа:BGB_1C_7.7.zip]] |
Текущая версия на 12:03, 14 ноября 2009
Приведу пример интеграции с 1С
Содержание |
Подготовка
Заходим в 1С конфигуратор, открываем конфигурацию и в разделе "Справочники" создаем новый стправочник "BGB".
Создаем реквизиты:
- cid - id договора из биллинга, тип значение - "Число", на закладке "Дополнительно" ставим галочку "Сортировка"
- Договор - ссылка на справочник "Справочники.Договоры", тип значение - "Справочники.Договоры", на закладке "Дополнительно" ставим галочку "Сортировка"
- Контрагент - ссылка на справочник "Справочники.Контрагенты", тип значение - "Справочники.Контрагенты", на закладке "Дополнительно" ставим галочку "Сортировка"
- Грузополучатель - ссылка на справочник "Справочники.Контрагенты", тип значение - "Справочники.Контрагенты", на закладке "Дополнительно" ставим галочку "Сортировка"
Справочник BGB позволит сопоставлять договора в биллинге и 1С.
Далее открываем 1С, заходим в "Справочники"->"Контрагенты" и создаем две группы. Одну для физических лиц, а другую для юридических.
Отредактируйте функцию Init()
Процедура Init() BGBHost = "10.0.2.225"; BGBUsername = "1c"; BGBPassword = "1c"; КодГруппыКонтрагентовЮрЛица = "00000010"; КодГруппыКонтрагентовФизЛица = "00000205"; MySQLHost = BGBHost; MySQLUsername = "root"; MySQLPassword = "root"; TmpDir = "C:\tmp\"; BuhModuleID = 8; // ID модуля бухгалтери ДатаСозданияСчета = ТекущаяДата(); ДатаСозданияСчетФактуры = ТекущаяДата(); КонецПроцедуры
Установите ODBC драйвер для MySQL, если он не установлен.
Импорт договоров
Обратите внимание на вызовы функции ПолучитьПараметрДоговора(), укажите свои коды параметров. Например:
НаименованиеАбонента = ПолучитьПараметрДоговора(ПараметрыДоговора, 2); ПолнНаименованиеАбонента = ПолучитьПараметрДоговора(ПараметрыДоговора, 3); ИНН = ПолучитьПараметрДоговора(ПараметрыДоговора, 17); КПП = ПолучитьПараметрДоговора(ПараметрыДоговора, 18); ЮридическийАдрес = ПолучитьПараметрДоговора(ПараметрыДоговора, 42); ПочтовыйАдрес = ПолучитьПараметрДоговора(ПараметрыДоговора, 43); Телефоны = ПолучитьПараметрДоговора(ПараметрыДоговора, 5); ОКПО = ПолучитьПараметрДоговора(ПараметрыДоговора, 19); РасСчет = ПолучитьПараметрДоговора(ПараметрыДоговора, 26); СерияНомерДокумента = ПолучитьПараметрДоговора(ПараметрыДоговора, 32); ДокументКемВыдан = ПолучитьПараметрДоговора(ПараметрыДоговора, 33); Прописка = ПолучитьПараметрДоговора(ПараметрыДоговора, 45); ДатаВыдачиДокумента = ПолучитьПараметрДоговора(ПараметрыДоговора, 34);
Создание счетов
Типы документов жестко прописаны в коде, при необходимости измените id документов. Генерация счетов сделана по аналогии с модулем Bill. Для создания документов выберите типы документов и дату создания. Нашмите сгенерировать и потом создать. Если нужно пересоздать докумен, то поставте галочку "Обновить данные". Защита от дубликатов строится на принципе, что один тип документа может быть создан только один раз за месяц.
Для того чтобы счета нумеровались 1С-ой необходимо в конфигурации модуля bill указать bill.fullnumberformat=БезНомера. Для того чтобы счета нумеровались биллингом поменяете в конфиругации модуля bill параметр bill.fullnumberformat на отличный от "БезНомера" и закомментируйте создание счетов с 1с-ке в функции ИмпортСчетовBGB()
Процедура ИмпортСчетовBGB() ОбновитьДанные = 0; Если ОбновитьДанныеПриИмпортеСчетов = 1 Тогда ОбновитьДанные = 1 КонецЕсли; ТекСтрока = СписокСчетовBGB.ТекущаяСтрока(); КолСтрок = СписокСчетовBGB.КоличествоСтрок(); Если КолСтрок=0 Тогда Возврат; КонецЕсли; Пока ТекСтрока<=КолСтрок Цикл НачатьТранзакцию(); Данные = СписокСчетовBGB.ПолучитьЗначение(ТекСтрока,"data"); СчетBGBid = СоздатьСчетBGB(Данные, ДатаСозданияСчета, ОбновитьДанные); // СоздатьСчет1с(СчетBGBid, ОбновитьДанные); ТекСтрока = ТекСтрока + 1; СписокСчетовBGB.ТекущаяСтрока(ТекСтрока); ЗафиксироватьТранзакцию(); КонецЦикла; КонецПроцедуры
Создание счет-фактур и актов
Генерация счет-фактур и актов сделана по аналогии с модулем Bill. Счет-фактура и акт создаются в биллинге разными документами. Нумерация производится 1С-ой. Защита от дубликатов строится на принципе, что один тип документа может быть создан только один раз за месяц. В конфигурации модуля bill укажите invoice.fullnumberformat=БезНомера
Обработка
Не надо воспринимать данную статью как готовое решение, это всего лишь небольшой пример интеграции с 1С 7.7. Данный подход не идеален, так как модуль bill не приспособлен к подобным вещам да и обработка создавалась на скорую руку.
Обрабока: Медиа:BGB_1C_7.7.zip