При переходе конфигурации 1С:Управление нашей фирмой с ветки 1.5 на 1.6 (в частности, на релиз 1.6.7 и выше) разработчики и администраторы часто сталкиваются с ошибкой выполнения метода записи документа:
{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(1508)}: Ошибка при вызове метода контекста (Записать) Записать(ПараметрыЗаписи); по причине: Не удалось провести: "Заказ покупателя"!
При этом программа не выводит явного диагностического сообщения, из-за чего проведение прерывается. Разберем по шагам причины такого поведения платформы и практические способы устранения неполадки.
Основная причина скрытых ошибок при переходе между мажорными редакциями — попытка «перепрыгнуть» промежуточные релизы (например, прямое обновление с 1.5.4 на 1.6.7). В платформе 1С:Предприятие структура метаданных и логика обработки данных изменяются постепенно:
Отказ = Истина.Решение:
Выполним процедуру перехода строго по дереву релизов на резервной копии базы данных. Миграцию между версиями необходимо осуществлять по следующей цепочке:
1.5.4.561.6.4.281.6.5.281.6.6.541.6.7.63 (или актуальный финальный релиз)После установки каждого промежуточного обновления обязательно запускаем базу в режиме «1С:Предприятие» под учетной записью с полными правами и дожидаемся полного завершения всех процедур обновления и отложенных обработчиков данных (раздел «Администрирование» — «Обслуживание» — «Результаты обновления программы»).
Если обновление уже выполнено поэтапно, но ошибка проведения заказа покупателя сохраняется, причиной часто служат зарегистрированные узлы планов обмена со старыми конфигурациями (например, обмен с «1С:Бухгалтерия предприятия» или сайтом). При проведении документа срабатывают подписки на события регистрации изменений для обмена данными. Если состав плана обмена в новой версии изменился, попытка зарегистрировать изменения завершается неявной ошибкой.
Решение:
Если конфигурация содержит нетиповые доработки, проведение может блокироваться в перехваченных блоках исключений или в модифицированных подписках на события. Чтобы локализовать точное место сбоя, выполним диагностику в режиме отладки:
Попытка ... Исключение, где ошибка могла быть перехвачена без вывода пользователю.ЗаказПокупателя.ПередЗаписью, ОбработкаПроверкиЗаполнения, ОбработкаПроведения) на предмет обращения к несуществующим реквизитам.После масштабных обновлений конфигурации локальный кэш клиента и структуры базы могут содержать устаревшую информацию о типах данных и правах доступа.
Решение:
%LOCALAPPDATA%\1C\1Cv8 и %APPDATA%\1C\1Cv8. При клиент-серверном варианте также очистим серверный кэш сеансов.