Каталог решений - Tool1CD: отрежем донорскую почку

Tool1CD: отрежем донорскую почку

Tool1CD: отрежем донорскую почку

В наличии

Ваша база мертва? Что ж, кое-что в ней ещё теплится.

Категория:

Описание

Рассмотрим очередной пример использования библиотеки tool1d. Сейчас мы напишем программку, которая облегчила бы мне жизнь пару лет назад.

Сценарий из жизни: розничная сеть, РИБ, кассовые узлы раз в месяц где-нибудь да сломаются, данные по последним продажам не попадают в центральный узел. Как мы решали проблему тогда? Поддержка копирует файл базы из магазина в офис, я с помощью старой доброй Tool1CD выгружаю таблицы с данными о чеках, глазами смотрю, чего не достаёт, руками редактирую выгрузку и запускаю костыль в виде обработки загрузки. Сейчас, имея на руках новый, подключаемый вариант библиотеки, я бы поступил по-другому. Новый сценарий: поддержка копирует файл базы себе на компьютер, запускает в 1С в центральном узле обработку, в обработке выбирает файл базы, нажимает большую волшебную кнопку "Вжух!" и нужные данные появляются в базе. Без моего участия, совсем. Вот таким образом мне нравится делать свою работу! Давайте попробуем сделать такую обработку.

Открываем предыдущую статью, выполняем "Часть 0" и только после этого идём дальше.

Что же должна делать обработка под капотом? Алгоритм следующий:

  • Открываем базу
  • Определяем принадлежность узла
  • Получаем список чеков в базе узла
  • Сравниваем с чеками в текущей базе — выделяем список недостающих
  • По списку запрашиваем данные из базы узла

В качестве упрощения нам дано то, что все узлы созданы путём копирования базы шаблона, потому мы заранее знаем соответствие метаданных и таблиц. Сведения о моей базе:

  • _NODE17 — план обмена По Кассе, поле _FLD254RREF — Касса. Отсюда узнаём, откуда база.
  • _DOCUMENT122 — Чек ККМ. Отсюда тащим недостающие данные.

Сведения о вашей базе можете получить через функцию глобального контекста 1С ПолучитьСтруктуруХраненияБазыДанных или через множество обработок на её основе, которые можно найти на Инфостарте.

Работа на стороне 1С останется за кадром, здесь мы будем рассматривать только то , что касается непосредственно функционала tool1cd.

Исходя из алгоритма API нашей компоненты должен выглядеть как-то так:

  • ОткрытьБазу / OpenDatabase. Принимает параметр — путь к базе. Возвращает 0, если база открыта, или код ошибки.
  • ОпределитьПринадлежностьУзла / GetNodeIdentity. Принимает параметры — имя таблицы плана обмена и имя поля с кассой. Возвращает строку — GUID кассы ККМ.
  • ПолучитьСписокДокументов / GetDocumentList. Принимает параметр — имя таблицы. Возвращает строку — список GUID через запятую.
  • ПолучитьДанныеПоДокументу / GetDocumentData. Принимает параметры — имя таблицы и GUID документа. Возвращает строку — XML представление документа.
  • ЗакрытьБазу / CloseDatabase. Закрывает открытую базу.

 

Псевдокод на 1С:

 

has been added to your cart:
Оформление заказа