ИТ-поддержка 1С: от заявки до решения

Пишу заметку не столько о техническом решении, сколько о этапах, которые проходит практически каждая подобная заявка. Кому интересно, присоединяйтесь.

Итак, пользователь заявляет о некорректности переноса документов между системой казначейства и 1С.

Процесс переноса выписок между системами тривиален. Его выполняет один работник и состоит он из следующих этапов:

  • работник финансовой службы выгружает выписку за предыдущий день в файл
  • перемещает файл между физически разными сетями
  • загружает в 1С
  • проводит в учете полученные в результате документы
На последнем этапе документы на перемещение денежных средств между счетами УФК отсутствовали. При этом никаких ошибок система не выдавала.

Ну что же, закатываем рукава, начинаем разбираться. Файлы УФК видим в первый раз, слово УФК слышим во второй, с выписками сталкиваемся всю сознательную жизнь. Что уже неплохо.

Первым делом смотрим в выгружаемый файл. Файл имеет текстовый формат, вполне читаем любым блокнотом, строки с недостающими документами идентифицируются и в наличии.

Пример формата файла выгрузки
Выходит, часть документов успешно считывается 1С, часть нет. Отличия между частями - в типе документа.

Значит 1С. Разбираем программную часть.

Основная работа системы происходит при нажатии пользователем кнопки Загрузить файлы.

Схематично работу кода можно представить в виде схемы

После пошагового исполнения этапа 3 и анализа содержания структур во время выполнения стало понятно, что информация теряется на этапе 2 - в структурах отсутствовала информация о недостающих документах.

Очередь пошагового прохождения этапа 2.

И вот тут сюрприз. 1С игнорирует строки недостающих документов. Вариантов причин как всегда минимум два. Из очевидно, либо недоработка типового решения, либо несоответствие файла импорта формату передачи данных. Ищем описание формата.

Сюрприз номер два.

Программа казначейства выдает файл импорта не в соответствии со своим же стандартом.

По понятным причинам доработать программы казначейства мы не в состоянии. Но надежда, что ребята "на той стороне" исправят свои программы все же есть. После этого и необходимость в доработке 1С отпадет. Но что же делать сейчас?

Итак.. Решено в момент загрузки на стороне 1С "добивать" файл импорта до требуемого формата. Типовой механизм обработки 1С не трогать. Это позволит, в случае исправления программ казначейства, не заниматься возвратом доработок к исходному типовому состоянию.

Собственно и все.

Попробуем сформулировать этапы работ, необходимые для подобного рода задач.

  1. Моделирование ситуации, приводящей к некорректной работе программы. Убеждаемся в стабильности результатов.
  2. Проведение системного анализа для поиска места возникновения некорректной работы системы.
  3. Оценка причин возникновения.
  4. Выработка решения.
Схематично поиск технического решения ошибок в программных комплексах

Выводы

В упрощенном виде любую задачу можно свести к сравнению между "как есть" и "как должно быть".

В приведенном примере вначале был получен ответ на вопрос "как есть". А затем "как должно быть". Такая последовательность не всегда выигрышна с точки зрения трудозатрат. Я рекомендую начинать с того вопроса, на который быстрее можно найти ответ. Не редко бывают случаи, когда найдя ответ на первый вопрос, отпадает сама необходимость искать ответ на второй.