Здравствуйте. Не удается обновить Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.79.21). Ошибку не выдет, но при проверке в Журнале регистраций вот такая ошибка:
08.10.2020 15:03:55 При выполнении обновления информационной базы произошла ошибка:
Уже существует основание увольнения с таким значением поля Наименование (п. 1 ст. 22)
{ОбщийМодуль.ОбновлениеИнформационнойБазы.Модуль(74)}: Объект.Записать();
{ОбщийМодуль.КадровыйУчет.Модуль(8095)}: ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ОбъектСправочника);
{Справочник.ОснованияУвольнения.МодульМенеджера(70)}: ПолучитьМакет(«ОснованияУвольненияПоТКРФ»));
{(1)}:Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}: Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(4957)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1778)}: ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1472)}: ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}: ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1912)}: Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}: Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}: ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
по причине:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
Уже существует основание увольнения с таким значением поля Наименование (п. 1 ст. 22)
{ОбщийМодуль.ЗарплатаКадрыСобытия.Модуль(544)}: ВызватьИсключение ТекстСообщения
{ОбщийМодуль.ОбновлениеИнформационнойБазы.Модуль(74)}: Объект.Записать();
{ОбщийМодуль.КадровыйУчет.Модуль(8095)}: ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ОбъектСправочника);
{Справочник.ОснованияУвольнения.МодульМенеджера(70)}: ПолучитьМакет(«ОснованияУвольненияПоТКРФ»));
{(1)}:Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}: Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(4957)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1778)}: ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1472)}: ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}: ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1912)}: Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}: Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}: ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
Насколько я поняла это связано с Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор (44 из 105).
Это моя система барахлит или как?
Приложение
Добрый вечер, Марина,
Без базы сложно дать совет, но давайте все-таки попробуем! 🙂
Я исхожу из того, что база у вас типовая, ее не дорабатывали, иначе, не видя код конфигуратора, решить проблему невозможно.
А вот в случае типовой базы, если Конфигурация на «замке» (запрет редактирования), можно попытаться найти причину и исправить ситуацию.
Я думаю, что в указанном справочнике Основания увольнения вами вносились данные вручную.
При обновлении программа пытается добавить элемент с тем же наименованием, что уже есть, и просходит задвоение: 1С сообщает об ошибке.
Вот смотрите как устроен справочник Основания увольнения в 1С
Он имеет 4 предопределенных значения
— п.1 ст.77
— п.3 ст. 77
— п.5 ст. 77
— п.2 ст. 81
— п.6 ст. 83 ч.1
Если конфигурация не доработана, у вас будет так же.
Приложение
Вот так выглядит этот справочник в пользовательском режиме 1С: программа заполняет его АВТОМАТИЧЕСКИ, согласно законодательству.
Не нужно вносить туда данные, потому что все, что нужно при обновлении программа добавит сама. Для этого нужно просто вовремы обновляться.
Вы запаздываете: у вас обновление 3.0.79.21 — это июль 2020 года, а сейчас актуальный релиз — 3.0.83.33.
Обратите внимание на моем скрине на выделенную строчку п. 1 ст. 22.
Здесь нет точки, как в п. 1 ч.1 ст. 77, значит это не предопределенный элемент. С ним можно работать.
Приложение
Сравните эти данные со своими — у вас тоже не предопределенный?
Тогда переименуйте это основание, например, п.1. ст.22 (Архив), выставив флаг Нестандартное наименование и текст
Внимание! Все исправления делайте в КОПИИ базы.
После исправления справочника повторите процедуру обновления.
Возможно,после выполненных действий все пройдет корректно.
Приложение
Если обновление после этого не пройдет, остается более сложный вариант.
Это тоже делать нужно в копии базы. И делать это должен программист, или человек, который обслуживает 1С.
В макете справочника Основания Увольнения содержатся все позиции справочника, которые автоматически загружаются при обновлении 1С по встроенной процедуре НачальноеЗаполнение().
Придется снять сзапрета редактирования этот справочник, открыть макет, найти строчку с п. 1 ст. 22 и удалить ее из списка.
После этого можно выполнить обновление и вернуть статью в макет.
Программист потом сможет поставить обратно «запрет редактирования», я описываю общий путь, что можно в этой ситуации сделать.
Хотя у вас базовая база, значит, вносить изменения нельзя. Тогда придется подумать об обработке.
Можно еще попробовать обновиться не на 3.0.79.21, а 3.0.79.14.
По моему опыту, такая ошибка возникала обычно в тех случаях, если был перенос данных.
Но все-таки думаю, что это не поможет. Если уже у вас введен этот элемент справочника в 1С, программа будет пытаться повторно его загрузить — и не сможет.
Ошибка лечится, как я описала, удалением элементов справочника Основания увольнения.
Не просто пометкой удаления, а через Операция — Удаление помеченных объектов. Но поскольку есть ссылки, удалить полностью элементы справочника в 1С у вас скорее всего не получится. Тут поможет программист, программно все удаляется.
Попробуйте поискать или заказать обработку по удалению не предопределенных элементов из справочника. Это идеальный вариант!
Все делайте на копии базы! Это очень важно, изменения эти необратимы.
Приложение
Знаете… а пусть вам будет подарок!)
Я программист, сейчас посмотрела код — совсем небольшая работа, я передам вам сейчас обработку для чистки и заполнения этого справочника по email
Вы запустите обработку по кнопке Главное меню — Файл — Открыть. Выберите присланную обработку, сохраненную на вашем ПК
Приложение
Откроется форма с тремя кнопками.
Нажимаете кнопку Проверить (проверятся данные справочника и если все ок, откроются к использованию следующие кнопки)
После этого становится доступной кнопка Удалить не предопределенные
Приложение
Смотрите свой справочник, там должны остаться только предопределенные данные.
После этого пробуйте обновляться.
Если конфигурация не доработана — это должно вам помочь.
И напоминаю, что все делайте в копии базы.
Это все, что мы можем рекомендовать предвариательно, без анализа самой базы.
Здравствуйте, Ирина! Отвечаю на все сразу) База у меня не дорабатывалась, типовая. Где находится справочник «Основания увольнения» я увидела только вчера), соответственно данные я (и никто другой) туда никакие не вносила… Почему так произошло не знаю…Я вчера, не получив еще вашего ответа, поискала дубли и в этом справочнике оказался п. 1 ст. 22 . Удалила и обновление пошло. Очень странно. У меня одной так? То весь вид номенклатуры слетел и стал «товары на комиссии», то еще какая-то бяка выскочит… Спасибо за обработку! Сегодня проверю
Отлично, Марина. Но если у вас обновление прошло, использовать обработку не нужно. Она написана только для удаления не предопределенных элементов справочника Основания увольнения и для других справочников НЕ подходит.
По поводу возникновения ошибки — нет, это редкая ошибка.
Так что вы в числе редких «счастливчиков». На моей практике такая ошибка возникала у клиентов после переноса базы.
Что было у вас я, конечно, не знаю. Тут нужен анализ базы, с которой переходили и на которой работаете сейчас.
Но главное — результат, все хорошо, можно обновляться до 3.0.83.33.
Ирина, спасибо большое! Удачного дня!