При работе с зарплатными проектами в программах 1С:Зарплата и Управление Персоналом 2.5 или 1С:Зарплата и кадры бюджетного учреждения 1.0 (а также в более старых версиях, которые пользователи часто называют ЗИК), часто возникает проблема при импорте подтверждения от банка. Вы пытаетесь загрузить файл со списком открытых лицевых счетов, но система выдает критическую ошибку: «Анализ данных: Не найден первичный документ!». Рассмотрим подробнее, почему это происходит и как правильно настроить процесс обмена данными.
Для начала проанализируем алгоритм работы стандартного механизма обмена данными с банками (стандарт XML для зарплатных проектов). В системе 1С процесс построен на строгой логической последовательности, которую нельзя нарушать:
Заявка на открытие лицевых счетов.ИдЗапроса.ИдЗапроса.Если вы получили файл из банка «просто так», без предварительно отправленной заявки из вашей текущей базы 1С, система не сможет найти «родительский» документ и выдаст ошибку отсутствия первичного документа. Это происходит потому, что в присланном банком файле либо отсутствует тег ИдЗапроса, либо в нем указан набор символов, который не соответствует ни одному документу в вашей базе.
Это наиболее технически точный способ решения, если счета уже открыты, а заявки в базе нет. Разберем его по шагам:
Во-первых, создадим в программе документ Заявка на открытие лицевых счетов. В него необходимо добавить всех сотрудников, по которым банк прислал данные в файле. Важно: документ должен быть заполнен и проведен.
Во-вторых, нам нужно узнать внутренний идентификатор этого нового документа. В обычных формах это можно сделать с помощью обработки Выгрузка и загрузка данных XML или через консоль запросов, выбрав поле Ссылка. Однако есть более простой пользовательский путь: попробуйте выгрузить эту новую пустую заявку в любой файл и откройте его текстовым редактором (например, Notepad++).
Найдите в выгруженном файле строку, похожую на эту:
<ИдЗапроса>550e8400-e29b-41d4-a716-446655440000</ИдЗапроса>
Скопируйте это значение. Теперь откройте файл, который прислали из банка, найдите в нем аналогичный тег ИдЗапроса и замените его значение на то, которое вы получили из своей базы. После сохранения изменений в XML, загрузка через меню Импорт/экспорт операций по лицевым счетам пройдет успешно, так как 1С «узнает» свою заявку.
Если вы не хотите заниматься редактированием XML-структур, проанализируем альтернативный вариант. Существует стандартная обработка Загрузка данных из табличного документа. Этот инструмент позволяет загружать информацию напрямую в регистры сведений, минуя проверку первичных документов.
Для реализации этого метода выполним следующие действия:
Загрузка данных из табличного документа.Лицевые счета сотрудников по зарплатным проектам (название может незначительно отличаться в зависимости от версии конфигурации).СправочникСсылка.Сотрудники, а номер счета — со строковым значением.Этот метод хорош тем, что он полностью игнорирует наличие или отсутствие заявок на открытие счетов, записывая данные напрямую в карточки сотрудников. В частности, при работе с банком «Санкт-Петербург» можно использовать обработку для загрузки данных по банковским картам из файлов Excel.
Выясним причину, по которой иногда даже при наличии заявки файл не загружается. Обратите внимание на настройки справочника Зарплатные проекты. В 1С версии 8.2 и 8.3 (на обычных формах) важно проверить:
UTF-8 или Windows-1251. Если при попытке чтения файла вы видите «кракозябры», попробуйте сменить кодировку в настройках обмена.Рассмотрим ситуацию, когда в вашей организации работают совместители. При автоматической загрузке через XML система ищет сотрудника по ФИО и дате рождения, но иногда может возникнуть путаница, если у человека создано несколько карточек в справочнике Сотрудники. В этом случае 1С может привязать лицевой счет не к тому месту работы. Чтобы этого избежать, рекомендуется проверять загруженные данные в карточке сотрудника на закладке Зачисления на карточку или Лицевые счета.
Подводя итог, можно сказать, что ошибка Не найден первичный документ — это не сбой программы, а срабатывание защитного механизма целостности данных. Чтобы её обойти, мы либо создаем связь вручную через редактирование ID в файле, либо используем прямую запись в базу через внешние обработки. Выбор метода зависит от вашего уровня владения инструментами 1С и количества сотрудников, по которым нужно загрузить данные.