Здравствуйте!
О чем всё это.
Решил поделиться накопленной информацией о базе данных СуперОкна7, далее для краткости БДСО. Зная состав таблиц и полей БДСО, можно написать много чего полезного, для производства окон.
Например выгрузку и загрузку текущей информации в 1С, реализовать дополнительные отчеты, которые невозможно создать во встроенном генераторе отчетов, из за недоступности необходимых таблиц и полей БДСО.
Так же можно создать выгрузки для станков ЧПУ, средствами 1С и получить полный контроль над доработкой и возможными изменениями, без обращения к разработчикам программы. Цена возможной экономии по прайсу КСТсофт, от 59 т.р., в общем есть за что "пошвыряться" в коде ))).
И еще хочу сразу уточнить, что информации и способов ей воспользоваться очень много, и выложить в одной статье не получиться. Я планирую написать несколько статей, в которых хочу поделиться своими идеями и полученным опытом в реализации этих идей.
По поводу кода 1С, скорее всего вряд ли удивлю чем то новым, почти вся информация так или иначе, есть на этом сайте. В 99% случаев обычный "копи паст", который свалю в несколько статей, и тем самым кому то сэкономлю время на поиск. Примеры кода мягко говоря не оптимальны с точки зрения рекомендованных 1С, т.е. буду приводить куски кода тестовые не оптимальные говнокод, но реально работающие, о чем немного ниже, кому надо сами разберутся как доработать.
Готового решения, так же не будет, т.к. внедрял на 3-х производствах, где свои бизнес процессы и свои тараканы в головах. Но есть много общего, и если покрутить, повертеть куски кода, то можно что то реализовать, всё зависит от желания и возможностей разработчика 1С.
Цель данного "обзора" не полный список таблиц и полей, а как раздобыть нужную информацию, для конкретных идей. Да и сами идеи позволяют заработать, как с точки зрения разработчиков, так и владельцев производств.
О базе данных СуперОкна7.
Итак - БДСО работает на СУБД FireBird, версии 2.1, и сразу уточню, что программа СуперОкна7 работает на любой версии СУБД 2.1-2.5, без каких либо видимых косяков, проверено в течении 4-х лет. Причем ставил СУБД при переустановках ОС первую попавшуюся с сайта разработчика. Но сразу оговорюсь, что так делать не стоит, т.к. и каких то преимуществ в обновлении СУБД, так же замечено не было.
Ещё как мне кажется ценная информация про версии программы СуперОкна 6, 7 - состав таблиц остается тем же самым от шестой к седьмой версии, за исключением добавленных некоторых таблиц и полей в седьмую версию. Тем самым написанное в шестой версии будет работать и в седьмой версии базы данных. И я так предполагаю, в восьмой версии СуперОкон, так же состав таблиц и полей сохраняется.
Для связи БДСО с 1С на Инфостарте и других сайтах достаточно много рецептов, но мы воспользуемся примером выгрузки с сайта разработчиков СуперОкна в разделе загрузки. Драйвер ODBC качаем с сайта разработчиков СУБД, текущую версию 32-х разрядную (1С и СУБД так же 32-х разрядная).
Заготовка выгрузки с сайта КСТ написана для версии 1С 8.0-8.1. И еще она интересная особенность кода, которая кидается в глаза, там везде используются запросы к БДСО в цикле, т.е. один запрос генерирует, много дополнительных запросов к другим таблицам, мы оставим так как есть у разработчиков.
Вопрос о таком подходе к написанию кода оставим на комментарии и разработчикам СО, т.к. на форумах есть сторонники и такого подхода (лучше куча маленьких запросов, чем один 3-х этажный). Наша цель понять где и что лежит, а как реализовать код это уже вопрос тридцать третий.
Пример правильных запросов к БД FireBird в похожей статье о выгрузке из ПрофОкна в 1С на Инфостарте, там требуется драйвер iBProvider, для параметрических запросов, т.к. с драйвер ODBC не поддерживает такие запросы (если ошибаюсь поправьте).
И еще понадобится программа iBExpert, для просмотра доступных таблиц и полей БДСО.
Так же не забываем включить галку доступ из сторонних программ к базе данных в настройках программы СуперОкна
Вопросы по установке, администрированию и настройке программ отправим к Гуглу, для тех кто в теме это не составит труда, а мы начнем поиск полезной информации в БДСО.
Доступные таблицы базы данных СуперОкна.
Открываем БДСО в программе iBExpert, видим 106 таблиц из которых не все нам доступны, но для наших поставленных целей вполне достаточно, выглядит это примерно так:
Смысл информации, находящейся в таблицах и полях, почти всегда можно определить по названию полей, и дополнительной информации на других вкладках, но бывают и тяжелые случаи.
Самая первая таблица содержит артикулы, наименования, единицы измерения, цены и другие поля. Есть название таблицы, названия полей, а дальше дело техники (метод научного тыка), загоняем счета меняем данные в полях и смотрим как меняются данные в соответствующих таблицах.
Назначение некоторых таблиц мне неизвестно, т.к. программа СуперОкна используется не в полном объеме, и состояние данных некоторых таблиц просто не меняется (нет соответствующих настроек в БДСО).
Обзор доступных таблиц БДСО7, сборка 31:
Метод конечно трудоемкий и вызывающий матерные мысли а то и выражения, но есть другой метод изучения таблиц и полей, по коду предложенных обработок с сайта КСТ, а так же моих (и не только моих) тестовых кусков кода, чем мы и займемся в следующих статьях.
Работаем с базой данных СО из 1С.
Немного о выборе конфигурации для интеграции с СуперОкнами.
Все (почти все) предприниматели в России ведут двойной учет - один для себя, другой для налоговой (в идеальном случае). По моим наблюдениям и опыту оптимальным решением является конфигурация УНФ, т.к. в ней есть все необходимые инструменты, для небольших производств. Тут дальше много букв и споров, но об этом потом...
Вся информация для внутреннего учета будет содержаться в УНФ, для налоговой могут быть разные варианты кому как нравится БП, КА... и т.д. .
Работа с таблицами и полями БДСО из 1С ничем не отличается от работы с таблицами и полями БД 1С, за исключением отсутствия конструктора запросов и англоязычным синтаксисом. Примеры запросов даны в обработках с сайта разработчика СО. Запросы позволяют считывать и записывать информацию в БДСО, что нам и надо.
Запросы к БДСО можно отлаживать в iBExpert, а затем переносить в код 1С, так проще и надежнее...
Дальше будет проще просто смотрим код придумываем свои хотелки и задачи.
Код подключения 1С к БДСО у меня реализован в общем модуле:
Пример запроса к БДСО:
Пишем в БДСО:
Приведенные выше примеры запросов, я использовал практически без изменения, из примера загрузки с сайта КСТсофт, в смысле считывания и записи необходимых полей таблиц БДСО.
А дальше дело только за тем, как использовать полученную информацию на производстве.
В моем случае, реализованы следующие сценарии обмена информации:
- Выгрузка счетов и изделий со спецификациями из СО, с созданием Заказа Покупателя, Заказа на производство.
- Загрузка производственных заданий раскроя, с одновременной печатью этикеток (Отчет). В отличии от имеющегося отчета СО, на стороне 1С можно сортировать, создавать первичные документы-отчеты за смену.
- Реализована выгрузка раскроя на станок распила, с возвратом документа-отчета в 1С, по работе за смену, без участия бухгалтерии.
Так же на базе "перелопаченной" конфигурации УНФ реализовали много разного функционала, конкретно для наших производств. Сейчас переписываю код в виде расширения к конфигурации, для возможности текущих обновлений.
Вот в общем то и всё, что хотел рассказать в этой статье. По поводу неточностей назначения таблиц или какой либо дополнительной информации, пишите в комментариях.