При вызове обработчика обновления произошла ошибка

  

Skaliy_art

08.04.15 — 03:49

1С 8.3.5.1517

Через конфигуратор обновил до 3.0.39.53 и запустил предприятие.

Началось обновление и вылезла ошибка:

{Справочник.СпособыВыплатыЗарплаты.МодульМенеджера(99)}: Ошибка при вызове метода контекста (Записать)

        СпособВыплаты.Записать();

по причине:

Предопределенный элемент не уникален

Откатываюсь на старую версию — все норм.

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

Не могу понять где и что делать. Подскажите пожалуйста.

  

Попытка1С

1 — 08.04.15 — 04:51

Запусти отладку, посмотри что он там пытается записать, какой элемент, сравни со своим справочником, сделай выводы.

  

Skaliy_art

16 — 09.04.15 — 08:28

(13) Спасибо, подтолкнули в правильном направлении.

Написал мануальчик по своему случаи, может пригодится:

1) Открываем рабочую конфу через режим "Предприятия" и ищем дубли с помощью "Администрирование"->"Поддержка и обслуживание"->"Поиск и удаление дублей"

2) Выбираем «Искать в» (в нашем случаи СпособыВыплатыЗарплат), отбирать (жмём крестик — получится «Все элементы») и ищем дубли. Тот элемент, которого

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

3) При нажатии кнопки "Удалить Дубли" возникает сложность в том, что проведенные документы, на основании которых уже существуют другие док-ты,
невозможно заменить необходимым элементом. Для это воспользуемся обработкой "Выгрузка и загрузка данных XML 8.3"

4) Выгружаем в XML файл (в нашем случаи справочник СпособыВыплатыЗарплат) и смотрим уникальные номера (с тегом Ref) дублирующихся элементов.

5) Следующий шаг — это выгрузить XML файл документа, в котором у нас используются дублирующий элемент (в нашем случае ВедомостьНаВыплатуЗарплатыВКассу) — файлы могут быть очень большими по размеру.

6) Теперь логика: в XML файле документа, где используются дубли, необходимо заменить Ref дубликатного элемента Ref-ом главного элемента.

7) После замены — загружаем исправленный файл через обработку обратно.

Грубо говоря мы сделали так, что дублирующий элемент никаким боком у нас не присутствует в документах. Теперь надо вообще удалить его.

8) Далее, так как предопределенный элемент справочника просто так не удалить, необходимо сделать это через конфигуратор.

Заведамо нужно в Конфигурация->Поддержка->Настройка Поддержки включить возможность редактирования
9) Открываем конфигурацию, справочники (в Нашем случаи СпособыВыплатыЗарплат). Нажимаем два раза -> Прочее -> Предопределенные -> и удаляем
единственный элемент (который и является дублем).
10) Не забываем после редактиирование нажать кнопку "Обновить конфигурацию базы данных"

11) Далее запускаем предприятие через отладку и повторяем пункты 1 и 2 — успешно удалив дубли.

12) Спокойно обновляем конфу и ошибка пропала.

Показывать по
10
20
40
сообщений

Новая тема

Ответить

АнатолийЩ

Дата регистрации: 28.09.2005
Сообщений: 31

При обновлении ошибка

При вызове обработчика обновления:
«Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()»
произошла ошибка:
При вызове обработчика обновления:
«Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()»
произошла ошибка:
«Уже существует основание увольнения с таким значением поля Наименование (п. 2 ч. 1 ст. 77)
{ОбщийМодуль.КадровыйУчет.Модуль(7561)}:            ОбъектСправочника.Записать();
{Справочник.ОснованияУвольнения.МодульМенеджера(70)}:            ПолучитьМакет(«ОснованияУвольненияПоТКРФ»));
{(1)}:Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(4937)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1778)}:                  ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1472)}:                  ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}:      ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1912)}:            Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}:            ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

по причине:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
Уже существует основание увольнения с таким значением поля Наименование (п. 2 ч. 1 ст. 77)
{ОбщийМодуль.ЗарплатаКадрыСобытия.Модуль(544)}:      ВызватьИсключение ТекстСообщения      
{ОбщийМодуль.КадровыйУчет.Модуль(7561)}:            ОбъектСправочника.Записать();
{Справочник.ОснованияУвольнения.МодульМенеджера(70)}:            ПолучитьМакет(«ОснованияУвольненияПоТКРФ»));
{(1)}:Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(4937)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1778)}:                  ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1472)}:                  ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}:      ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1912)}:            Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}:            ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
«.

Valentin46

Дата регистрации: 10.02.2011
Сообщений: 1041

Анатолий, проведите полное ТИИ (при всех установленных флажках ) релиза 3.0.77.56 и повторите обновление.

АнатолийЩ

Дата регистрации: 28.09.2005
Сообщений: 31

После ТИИ
результат:

Уже существует основание увольнения с таким значением поля Наименование (п. 2 ч. 1 ст. 77)
{ОбщийМодуль.КадровыйУчет.Модуль(7561)}:            ОбъектСправочника.Записать();
{Справочник.ОснованияУвольнения.МодульМенеджера(70)}:            ПолучитьМакет(«ОснованияУвольненияПоТКРФ»));
{(1)}:Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(4937)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1778)}:                  ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1472)}:                  ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}:      ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1912)}:            Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}:            ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

по причине:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
Уже существует основание увольнения с таким значением поля Наименование (п. 2 ч. 1 ст. 77)
{ОбщийМодуль.ЗарплатаКадрыСобытия.Модуль(544)}:      ВызватьИсключение ТекстСообщения      
{ОбщийМодуль.КадровыйУчет.Модуль(7561)}:            ОбъектСправочника.Записать();
{Справочник.ОснованияУвольнения.МодульМенеджера(70)}:            ПолучитьМакет(«ОснованияУвольненияПоТКРФ»));
{(1)}:Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(4937)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1778)}:                  ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1472)}:                  ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}:      ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1912)}:            Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}:            ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

Александр Лейман

активный пользователь

офлайн

Дата регистрации: 12.02.2015
Сообщений: 244

АнатолийЩ

Дата регистрации: 28.09.2005
Сообщений: 31

Цитата
Спасибо помогла ссылка на обработку с указанного форума!!!

Показывать по
10
20
40
сообщений

Добрый день.

При обновлении на версию 2.0.15.1 с версии 2.0.14.4 выдает ошибку:

При вызове обработчика обновления:
«ОбновлениеИнформационнойБазыДеньги.Обновление_20151()»
произошла ошибка:
«{Документ.Перевод.МодульМенеджера(97)}: Преобразование значения к типу Булево не может быть выполнено
        СчетДенегКуда = ?(СтрокаДокумента.ИспользоватьДляНакопленийКуда, ПланыСчетов.РазделыУчета.Накопления, ПланыСчетов.РазделыУчета.СвободныеДеньги);».

При анализе причины возникновения ошибки выяснилось, что в процедуре ОбновлениеИнформационнойБазыДеньги.Обновление_20151_ОбновитьИтогиПоОбъектам()
выборка документов производиться без учета проведения и удаления документа. 

Запрос.Текст =
    «ВЫБРАТЬ
    |    ОбщийЖурналДокументов.Ссылка КАК Ссылка,
    |    ОбщийЖурналДокументов.Тип
    |ИЗ
    |    ЖурналДокументов.ОбщийЖурналДокументов КАК ОбщийЖурналДокументов
    |
    |УПОРЯДОЧИТЬ ПО
    |    ОбщийЖурналДокументов.Дата,
    |    Ссылка»;

После этого для каждого документа из этой выборки, содержащей не проведенные и удаленные документы, вызывается процедура         

Документы[Выборка.Ссылка.Метаданные().Имя].ЗаписатьОбъектыОперации(Выборка.Ссылка); — которая, по моим предположениям, формирует движения документа.

При этом если в удаленном документе Перемещение не заполнены поля: ИспользоватьДляНакопленийКуда или ИспользоватьДляНакопленийОткуда, то возникает ошибка.

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

далеко в код не залезал и не проверял. Но если это так — 100% вероятность появления ошибок в учете.

Способ исправления ошибки — заполнить реквизиты в удаленных документах Перемещение или выполнить удаление помеченных объектов.

1С 8.3.5.1517 Через конфигуратор обновил до 3.0.39.53 и запустил предприятие. Началось обновление и вылезла ошибка: {Справочник.СпособыВыплатыЗарплаты.МодульМенеджера}: Ошибка при вызове метода контекста (Записать)         СпособВыплаты.Записать; по причине: Предопределенный элемент не уникален Откатываюсь на старую версию — все норм. Как я понимаю, при обновлении, в новой конфигурации появляется элемент с Код, идентичным уже существующему элементу. И нужно где-то что-то поменять или удалить. Не могу понять где и что делать. Подскажите пожалуйста.

Запусти отладку, посмотри что он там пытается записать, какой элемент, сравни со своим справочником, сделай выводы.

Написано же: Справочник.СпособыВыплатыЗарплаты там есть предопределенный элемент. Поменяй им номера.

Там один единственный предопределенный элемент, у которого поле «код» пустое. Только наименование «Зарплата». Это я в конфигураторе смотрю.

При вызове обработчика обновления: произошла ошибка: «{Справочник.СпособыВыплатыЗарплаты.МодульМенеджера}: Ошибка при вызове метода контекста (Записать)         СпособВыплаты.Записать; по причине: Предопределенный элемент не уникален». Эта ошибка перед ошибкой, указанной в теме

Ну и поменяй имя предопределенного на «Зарплата1», обновись, перекинь ссылки «Зарплата1» на «Запрплата» который создастся при обновлении.

Stim 1sanekmaloi1 Не помогло, поменял и «Имя» и «Наименование» элемента — при запуске отладки — такая же ошибка.

Уже 100 раз тут по моему обсуждалось. Нужно в режиме «Предприятия» «убить» задвоенные предопределенные элементы.

мне получается  нужно откатиться на рабочую конфигурацию и в ней искать? Потому что в обновленной — в режим предприятия не заходит.

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

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

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

а с какого релиза и в какой последовательности обновлял?

Спасибо, подтолкнули в правильном направлении. Написал мануальчик по своему случаи, может пригодится: 1) Открываем рабочую конфу через режим «Предприятия» и ищем дубли с помощью «Администрирование»->»Поддержка и обслуживание»->»Поиск и удаление дублей» 2) Выбираем «Искать в» (в нашем случаи СпособыВыплатыЗарплат), отбирать (жмём крестик — получится «Все элементы») и ищем дубли. Тот элемент, которого у нас больше, тот и считаем за главный, соответственно, тот, которого меньше, считаем дублем, который нужно удалить. 3) При нажатии кнопки «Удалить Дубли» возникает сложность в том, что проведенные документы, на основании которых уже существуют другие док-ты, невозможно заменить необходимым элементом. Для это воспользуемся обработкой «Выгрузка и загрузка данных XML 8.3» 4) Выгружаем в XML файл (в нашем случаи справочник СпособыВыплатыЗарплат) и смотрим уникальные номера (с тегом Ref) дублирующихся элементов. 5) Следующий шаг — это выгрузить XML файл документа, в котором у нас используются дублирующий элемент (в нашем случае ВедомостьНаВыплатуЗарплатыВКассу) — файлы могут быть очень большими по размеру. 6) Теперь логика: в XML файле документа, где используются дубли, необходимо заменить Ref дубликатного элемента Ref-ом главного элемента. 7) После замены — загружаем исправленный файл через обработку обратно. Грубо говоря мы сделали так, что дублирующий элемент никаким боком у нас не присутствует в документах. Теперь надо вообще удалить его. 8) Далее, так как предопределенный элемент справочника просто так не удалить, необходимо сделать это через конфигуратор. Заведамо нужно в Конфигурация->Поддержка->Настройка Поддержки включить возможность редактирования 9) Открываем конфигурацию, справочники (в Нашем случаи СпособыВыплатыЗарплат). Нажимаем два раза -> Прочее -> Предопределенные -> и удаляем единственный элемент (который и является дублем). 10) Не забываем после редактиирование нажать кнопку «Обновить конфигурацию базы данных» 11) Далее запускаем предприятие через отладку и повторяем пункты 1 и 2 — успешно удалив дубли. 12) Спокойно обновляем конфу и ошибка пропала.

А разве п. 3) нельзя было сделать через поиск и замену? не если нет стандартной, то можно было свою написать. Потом как-то напрягает… В документах допустим ссылки поменяли. Возможно, что для данного варианта прокатит. А если ссылки есть еще в регистрах?

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Ошибка при обновлении 1С 8 КА 2 с подредакции 2.5.8 на 2.5.9: Недопустимое значение параметра (параметр номер ‘1’) (Колонка не принадлежит коллекции). {РегистрСведений.СловарьСопоставленияНоменклатурыБЭД.МодульМенеджера(41)}:ЗаполнитьСловарьСопоставленияН

Описание ошибки:
«Проблема с обработчиками» была встречена при выполнении обработчиков обновления базы Комплексная автоматизация с релиза подредакции 2.5.8.287 на релиз подредакции 2.5.9.119. «Не все процедуры удалось выполнить» из дополнительных процедур обработки данных. Стандартный способ решения, предлагаемый разработчиками, не помог.

Найденные решения:

Данная проблема и последующее ее решение может поджидать Вас не только в конкретной конфигурации, но и в других, которые работают в режиме управляемого приложения, и могут быть «построены» с использованием Библиотеки стандартных подсистем (БСП).

1C 8 при обновлении проблемы с обработчиками, не все процедуры удалось выполнить
Рис. 1. Частный пример «проблемы с обработчиками», «не все процедуры удалось выполнить».

Общая рекомендация от 1С как подсказка в форме рекомендует открыть список дополнительных процедур обработки данных, перейдя по соответствующей ссылке и нажать в открывшемся окне на кнопку «Запустить», чтобы процесс принудительно снова выполнился.

1С 8, результат обновления программы с проблемой обработчиков
Рис. 2. Общая рекомендация о том, как исправить «проблемы с обработчиками» при обновлении в 1С 8.

В соответствии с рекомендацией — переходим по ссылке «Не все процедуры удалось выполнить» открываем форму списка «Дополнительные процедуры обработки данных». Находим копку «Запустить» и ожидаем.

Нажатие на изображении увеличит его
1С 8 ошибка, как исправить, решить, руководство, не все процедуры удалось выполнить
Рис. 3.  Форма списка «Дополнительные процедуры обработки данных» при обновлении в 1С 8

Если ошибка при дополнительной обработке носит не технический характер, то, возможно, что такой запуск избавит от ее. Но в обсуждаемом примере ошибка носила именно технический характер. И хоть сколько запускай — результат будет один и тот же. В частности, проблема была в участке кода:

Подробный текст ошибки:

Процедура «РегистрыСведений.СловарьСопоставленияНоменклатурыБЭД.ОбработатьДанныеДляПереходаНаНовуюВерсию» обработки данных завершилась с ошибкой:

Недопустимое значение параметра (параметр номер ‘1’) (Колонка не принадлежит коллекции)

Технические подробности:
Ошибка выполнения фонового задания ДлительныеОперации.ВыполнитьСКонтекстомКлиента с идентификатором 10be6416-8958-4124-b61f-023b79cfb16f по причине
Ошибка при вызове метода контекста (ВыгрузитьКолонку)
{РегистрСведений.СловарьСопоставленияНоменклатурыБЭД.МодульМенеджера(246)}:Порция = ОбновляемыеДанные.ВыгрузитьКолонку(«СсылкаНаОбъект»);
{РегистрСведений.СловарьСопоставленияНоменклатурыБЭД.МодульМенеджера(41)}:ЗаполнитьСловарьСопоставленияНоменклатурыБЭД(Параметры);
{(1)}:РегистрыСведений.СловарьСопоставленияНоменклатурыБЭД.ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры[0])

Нажатие на изображении увеличит его
1С 8 ошибка при обновлении базы, при выполнении дополнительных процедур
Рис. 4. Ошибка при обновлении базы «Недопустимое значение параметра (параметр номер ‘1’) (Колонка не принадлежит коллекции)».

Так как разрешить подобные «проблемы с обработчиками обновления данных» при обновлении баз 1С 8? Такая ошибка может поджидать не только в данном примере. Можно рассматривать два варианта — первый сразу пробовать исправлять код разработчиков, чтобы обработчик отработал после исправления. Второй — попробовать изменить порядок обновления. Еще раз отметим, что в данном примере выполнялось обновление с подредакции Комплексной автоматизации 2.5.8 на подредакцию 2.5.9, а значит, возможно может быть и в других конфигурациях, «построенных» на БСП (Библиотека стандартных подсистем), таких, как Управление торговлей ред. 11, ERP 2. И, скорее всего, переход с релиза …5.8.287 на релиз …5.9.119 во всех этих конфигурациях может сопровождаться такой ошибкой.

Итак, если имеется архив базы, созданный перед началом обновления, то можно попробовать другую комбинацию, другой порядок обновляемых релизов, предварительно восстановив базу. В данном же примере было еще выполнено обновление до релиза 2.5.8.303, потом обновление до подредакции 2.5.9.125. И при обновлении, при выполнении дополнительных процедур обработки данных все прошло без проблем и ошибок. Т.е. ошибка, которая содержалась, скорее всего, в коде релиза 5.9.119, была устранена в релизе 5.9.125. Можно, конечно, проверить по истории регистрации и исправления ошибок на сайте 1С. Но на это не было времени. И выбранный подход в обходе проблемы помог.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

05-12-2022

Журавлев А.С.
(Сайт azhur-c.ru)

Добрый день.

При обновлении на версию 2.0.15.1 с версии 2.0.14.4 выдает ошибку:

При вызове обработчика обновления:
«ОбновлениеИнформационнойБазыДеньги.Обновление_20151()»
произошла ошибка:
«{Документ.Перевод.МодульМенеджера(97)}: Преобразование значения к типу Булево не может быть выполнено
        СчетДенегКуда = ?(СтрокаДокумента.ИспользоватьДляНакопленийКуда, ПланыСчетов.РазделыУчета.Накопления, ПланыСчетов.РазделыУчета.СвободныеДеньги);».

При анализе причины возникновения ошибки выяснилось, что в процедуре ОбновлениеИнформационнойБазыДеньги.Обновление_20151_ОбновитьИтогиПоОбъектам()
выборка документов производиться без учета проведения и удаления документа. 

Запрос.Текст =
    «ВЫБРАТЬ
    |    ОбщийЖурналДокументов.Ссылка КАК Ссылка,
    |    ОбщийЖурналДокументов.Тип
    |ИЗ
    |    ЖурналДокументов.ОбщийЖурналДокументов КАК ОбщийЖурналДокументов
    |
    |УПОРЯДОЧИТЬ ПО
    |    ОбщийЖурналДокументов.Дата,
    |    Ссылка»;

После этого для каждого документа из этой выборки, содержащей не проведенные и удаленные документы, вызывается процедура         

Документы[Выборка.Ссылка.Метаданные().Имя].ЗаписатьОбъектыОперации(Выборка.Ссылка); — которая, по моим предположениям, формирует движения документа.

При этом если в удаленном документе Перемещение не заполнены поля: ИспользоватьДляНакопленийКуда или ИспользоватьДляНакопленийОткуда, то возникает ошибка.

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

далеко в код не залезал и не проверял. Но если это так — 100% вероятность появления ошибок в учете.

Способ исправления ошибки — заполнить реквизиты в удаленных документах Перемещение или выполнить удаление помеченных объектов.

Ошибка при обновлении информационной базы.

Я
   Skaliy_art

08.04.15 — 03:49

1С 8.3.5.1517

Через конфигуратор обновил до 3.0.39.53 и запустил предприятие.

Началось обновление и вылезла ошибка:

{Справочник.СпособыВыплатыЗарплаты.МодульМенеджера(99)}: Ошибка при вызове метода контекста (Записать)

        СпособВыплаты.Записать();

по причине:

Предопределенный элемент не уникален

Откатываюсь на старую версию — все норм.

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

Не могу понять где и что делать. Подскажите пожалуйста.

   Попытка1С

1 — 08.04.15 — 04:51

Запусти отладку, посмотри что он там пытается записать, какой элемент, сравни со своим справочником, сделай выводы.

   cons74

2 — 08.04.15 — 06:48

Написано же: Справочник.СпособыВыплатыЗарплаты

там есть предопределенный элемент. Поменяй им номера.

   Skaliy_art

3 — 08.04.15 — 10:54

Там один единственный предопределенный элемент, у которого поле «код» пустое. Только наименование «Зарплата».

Это я в конфигураторе смотрю.

   Skaliy_art

4 — 08.04.15 — 11:06

При вызове обработчика обновления:

«Справочники.СпособыВыплатыЗарплаты.ЗаполнитьОкругление()»

произошла ошибка:

«{Справочник.СпособыВыплатыЗарплаты.МодульМенеджера(99)}: Ошибка при вызове метода контекста (Записать)

        СпособВыплаты.Записать();

по причине:

Предопределенный элемент не уникален».

Эта ошибка перед ошибкой, указанной в теме

   Stim

5 — 08.04.15 — 11:10

типовая?

   1sanekmaloi1

6 — 08.04.15 — 11:16

(3) Ну и поменяй имя предопределенного на «Зарплата1», обновись, перекинь ссылки «Зарплата1» на «Запрплата» который создастся при обновлении.

   Skaliy_art

7 — 08.04.15 — 11:44

Stim

да (бухгалтерия)

1sanekmaloi1

Не помогло, поменял и «Имя» и «Наименование» элемента — при запуске отладки — такая же ошибка.

   Skaliy_art

8 — 08.04.15 — 11:47

(6) (5)

   D_E_S_131

9 — 08.04.15 — 11:48

Уже 100 раз тут по моему обсуждалось. Нужно в режиме «Предприятия» «убить» задвоенные предопределенные элементы.

   Skaliy_art

10 — 08.04.15 — 11:55

(9) мне получается  нужно откатиться на рабочую конфигурацию и в ней искать? Потому что в обновленной — в режим предприятия не заходит.

   Stim

11 — 08.04.15 — 11:55

(9) необязательно.

можно еще установить свойство Обновление предопр данных в Не обновлять автоматически у статей затрат

   Skaliy_art

12 — 08.04.15 — 12:01

(11) не помогло

   D_E_S_131

13 — 08.04.15 — 12:17

(10) Да, откатиться. Потом посмотреть на этот справочник и там уже должны быть задвоенные предопределенные элементы. Их и исправлять.

   Skaliy_art

14 — 08.04.15 — 12:54

(13) а может быть такое, что задвоенные предопределенные элементы появляются после обновления. Как мне тогда их вычислить и удалить?

   Emvika

15 — 08.04.15 — 16:46

(0) а с какого релиза и в какой последовательности обновлял?

   Skaliy_art

16 — 09.04.15 — 08:28

(13) Спасибо, подтолкнули в правильном направлении.

Написал мануальчик по своему случаи, может пригодится:

1) Открываем рабочую конфу через режим «Предприятия» и ищем дубли с помощью «Администрирование»->»Поддержка и обслуживание»->»Поиск и удаление дублей»

2) Выбираем «Искать в» (в нашем случаи СпособыВыплатыЗарплат), отбирать (жмём крестик — получится «Все элементы») и ищем дубли. Тот элемент, которого

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

3) При нажатии кнопки «Удалить Дубли» возникает сложность в том, что проведенные документы, на основании которых уже существуют другие док-ты,

невозможно заменить необходимым элементом. Для это воспользуемся обработкой «Выгрузка и загрузка данных XML 8.3»

4) Выгружаем в XML файл (в нашем случаи справочник СпособыВыплатыЗарплат) и смотрим уникальные номера (с тегом Ref) дублирующихся элементов.

5) Следующий шаг — это выгрузить XML файл документа, в котором у нас используются дублирующий элемент (в нашем случае ВедомостьНаВыплатуЗарплатыВКассу) — файлы могут быть очень большими по размеру.

6) Теперь логика: в XML файле документа, где используются дубли, необходимо заменить Ref дубликатного элемента Ref-ом главного элемента.

7) После замены — загружаем исправленный файл через обработку обратно.

Грубо говоря мы сделали так, что дублирующий элемент никаким боком у нас не присутствует в документах. Теперь надо вообще удалить его.

8) Далее, так как предопределенный элемент справочника просто так не удалить, необходимо сделать это через конфигуратор.

Заведамо нужно в Конфигурация->Поддержка->Настройка Поддержки включить возможность редактирования

9) Открываем конфигурацию, справочники (в Нашем случаи СпособыВыплатыЗарплат). Нажимаем два раза -> Прочее -> Предопределенные -> и удаляем

единственный элемент (который и является дублем).

10) Не забываем после редактиирование нажать кнопку «Обновить конфигурацию базы данных»

11) Далее запускаем предприятие через отладку и повторяем пункты 1 и 2 — успешно удалив дубли.

12) Спокойно обновляем конфу и ошибка пропала.

  

Mashinist

17 — 09.04.15 — 08:35

(16) А разве п. 3) нельзя было сделать через поиск и замену? не если нет стандартной, то можно было свою написать.

Потом как-то напрягает… В документах допустим ссылки поменяли. Возможно, что для данного варианта прокатит.

А если ссылки есть еще в регистрах?

Показывать по
10
20
40
сообщений

Новая тема

Ответить

АнатолийЩ

Дата регистрации: 28.09.2005
Сообщений: 31

При обновлении ошибка

При вызове обработчика обновления:
«Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()»
произошла ошибка:
При вызове обработчика обновления:
«Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()»
произошла ошибка:
«Уже существует основание увольнения с таким значением поля Наименование (п. 2 ч. 1 ст. 77)
{ОбщийМодуль.КадровыйУчет.Модуль(7561)}:            ОбъектСправочника.Записать();
{Справочник.ОснованияУвольнения.МодульМенеджера(70)}:            ПолучитьМакет(«ОснованияУвольненияПоТКРФ»));
{(1)}:Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(4937)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1778)}:                  ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1472)}:                  ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}:      ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1912)}:            Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}:            ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

по причине:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
Уже существует основание увольнения с таким значением поля Наименование (п. 2 ч. 1 ст. 77)
{ОбщийМодуль.ЗарплатаКадрыСобытия.Модуль(544)}:      ВызватьИсключение ТекстСообщения      
{ОбщийМодуль.КадровыйУчет.Модуль(7561)}:            ОбъектСправочника.Записать();
{Справочник.ОснованияУвольнения.МодульМенеджера(70)}:            ПолучитьМакет(«ОснованияУвольненияПоТКРФ»));
{(1)}:Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(4937)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1778)}:                  ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1472)}:                  ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}:      ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1912)}:            Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}:            ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
«.

Valentin46

Дата регистрации: 10.02.2011
Сообщений: 1041

Анатолий, проведите полное ТИИ (при всех установленных флажках ) релиза 3.0.77.56 и повторите обновление.

АнатолийЩ

Дата регистрации: 28.09.2005
Сообщений: 31

После ТИИ
результат:

Уже существует основание увольнения с таким значением поля Наименование (п. 2 ч. 1 ст. 77)
{ОбщийМодуль.КадровыйУчет.Модуль(7561)}:            ОбъектСправочника.Записать();
{Справочник.ОснованияУвольнения.МодульМенеджера(70)}:            ПолучитьМакет(«ОснованияУвольненияПоТКРФ»));
{(1)}:Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(4937)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1778)}:                  ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1472)}:                  ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}:      ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1912)}:            Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}:            ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

по причине:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
Уже существует основание увольнения с таким значением поля Наименование (п. 2 ч. 1 ст. 77)
{ОбщийМодуль.ЗарплатаКадрыСобытия.Модуль(544)}:      ВызватьИсключение ТекстСообщения      
{ОбщийМодуль.КадровыйУчет.Модуль(7561)}:            ОбъектСправочника.Записать();
{Справочник.ОснованияУвольнения.МодульМенеджера(70)}:            ПолучитьМакет(«ОснованияУвольненияПоТКРФ»));
{(1)}:Справочники.ОснованияУвольнения.ЗагрузитьКлассификатор()
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(4937)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1778)}:                  ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1472)}:                  ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}:      ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1912)}:            Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:      Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:            ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}:            ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

Александр Лейман

активный пользователь

офлайн

Дата регистрации: 12.02.2015
Сообщений: 251

АнатолийЩ

Дата регистрации: 28.09.2005
Сообщений: 31

Цитата
Спасибо помогла ссылка на обработку с указанного форума!!!

Показывать по
10
20
40
сообщений

Читают тему:

1С 8.3.5.1517 Через конфигуратор обновил до 3.0.39.53 и запустил предприятие. Началось обновление и вылезла ошибка: {Справочник.СпособыВыплатыЗарплаты.МодульМенеджера}: Ошибка при вызове метода контекста (Записать)         СпособВыплаты.Записать; по причине: Предопределенный элемент не уникален Откатываюсь на старую версию — все норм. Как я понимаю, при обновлении, в новой конфигурации появляется элемент с Код, идентичным уже существующему элементу. И нужно где-то что-то поменять или удалить. Не могу понять где и что делать. Подскажите пожалуйста.

Запусти отладку, посмотри что он там пытается записать, какой элемент, сравни со своим справочником, сделай выводы.

Написано же: Справочник.СпособыВыплатыЗарплаты там есть предопределенный элемент. Поменяй им номера.

Там один единственный предопределенный элемент, у которого поле «код» пустое. Только наименование «Зарплата». Это я в конфигураторе смотрю.

При вызове обработчика обновления: произошла ошибка: «{Справочник.СпособыВыплатыЗарплаты.МодульМенеджера}: Ошибка при вызове метода контекста (Записать)         СпособВыплаты.Записать; по причине: Предопределенный элемент не уникален». Эта ошибка перед ошибкой, указанной в теме

Ну и поменяй имя предопределенного на «Зарплата1», обновись, перекинь ссылки «Зарплата1» на «Запрплата» который создастся при обновлении.

Stim 1sanekmaloi1 Не помогло, поменял и «Имя» и «Наименование» элемента — при запуске отладки — такая же ошибка.

Уже 100 раз тут по моему обсуждалось. Нужно в режиме «Предприятия» «убить» задвоенные предопределенные элементы.

мне получается  нужно откатиться на рабочую конфигурацию и в ней искать? Потому что в обновленной — в режим предприятия не заходит.

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

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

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

а с какого релиза и в какой последовательности обновлял?

Спасибо, подтолкнули в правильном направлении. Написал мануальчик по своему случаи, может пригодится: 1) Открываем рабочую конфу через режим «Предприятия» и ищем дубли с помощью «Администрирование»->»Поддержка и обслуживание»->»Поиск и удаление дублей» 2) Выбираем «Искать в» (в нашем случаи СпособыВыплатыЗарплат), отбирать (жмём крестик — получится «Все элементы») и ищем дубли. Тот элемент, которого у нас больше, тот и считаем за главный, соответственно, тот, которого меньше, считаем дублем, который нужно удалить. 3) При нажатии кнопки «Удалить Дубли» возникает сложность в том, что проведенные документы, на основании которых уже существуют другие док-ты, невозможно заменить необходимым элементом. Для это воспользуемся обработкой «Выгрузка и загрузка данных XML 8.3» 4) Выгружаем в XML файл (в нашем случаи справочник СпособыВыплатыЗарплат) и смотрим уникальные номера (с тегом Ref) дублирующихся элементов. 5) Следующий шаг — это выгрузить XML файл документа, в котором у нас используются дублирующий элемент (в нашем случае ВедомостьНаВыплатуЗарплатыВКассу) — файлы могут быть очень большими по размеру. 6) Теперь логика: в XML файле документа, где используются дубли, необходимо заменить Ref дубликатного элемента Ref-ом главного элемента. 7) После замены — загружаем исправленный файл через обработку обратно. Грубо говоря мы сделали так, что дублирующий элемент никаким боком у нас не присутствует в документах. Теперь надо вообще удалить его. 8) Далее, так как предопределенный элемент справочника просто так не удалить, необходимо сделать это через конфигуратор. Заведамо нужно в Конфигурация->Поддержка->Настройка Поддержки включить возможность редактирования 9) Открываем конфигурацию, справочники (в Нашем случаи СпособыВыплатыЗарплат). Нажимаем два раза -> Прочее -> Предопределенные -> и удаляем единственный элемент (который и является дублем). 10) Не забываем после редактиирование нажать кнопку «Обновить конфигурацию базы данных» 11) Далее запускаем предприятие через отладку и повторяем пункты 1 и 2 — успешно удалив дубли. 12) Спокойно обновляем конфу и ошибка пропала.

А разве п. 3) нельзя было сделать через поиск и замену? не если нет стандартной, то можно было свою написать. Потом как-то напрягает… В документах допустим ссылки поменяли. Возможно, что для данного варианта прокатит. А если ссылки есть еще в регистрах?

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Понравилась статья? Поделить с друзьями:
  • При вызове web сервиса произошла ошибка
  • При выдаче паспорта допустили ошибку что делать
  • При выгрузке эсф ошибка уполномоченный сотрудник
  • При выгрузке базы 1с выдает ошибку
  • При выводе на печать выдает ошибку