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

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

Я
   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) нельзя было сделать через поиск и замену? не если нет стандартной, то можно было свою написать.

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

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

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

Типовая конфигурация

Обновление стандартной программы не должно вызвать затруднений – как правило, для этого достаточно стабильного подключения к интернету. Все нужные действия программа подскажет вам сама. Однако иногда и с этим могут возникнуть проблемы.

Ошибка при записи профиля. Такой профиль уже существует

Сообщение об ошибке говорит само за себя – и подсказывает решение проблемы. Зайдите в справочник пользователей программы и проанализируйте его – вероятно, в там уже зарегистрировано несколько одинаковых администраторов или бухгалтеров. Удалите дубли учетных записей, и ошибка 1С базы исчезнет.

Ошибки при обновлении 1С

Имя предопределенного элемента не уникально

Часто пользователи сталкиваются с сообщением «Имя предопределенного элемента не уникально». Такая ошибка при обновлении стандартной конфигурации 1С возникает из-за некорректного апдейта последней версии программы. Чтобы исправить проблему, можно откатить ПО к прошлой версии программы. Частично это сделать нельзя: вам придется скачать и установить предыдущую версию программы с сайта разработчика или же вернуться к ее резервной копии.

Если у вас есть резервная копия БД, вам потребуется:

  • Зайти в режим конфигуратора;
  • Перейти в меню «Администрирование – Загрузить информационную базу»;
  • Далее найдите файл, в котором ранее была сохранена резервная копия в формате .dt;
  • Система предупредит вас о том, что несохраненная ранее информация будет потеряна – согласитесь с этим и дождитесь загрузки ИД;
  • После успешной выгрузки перезапустите конфигуратор.

Резервное копирование – важная операция, которая позволит вам сэкономить время при появлении ошибки обновления локальной базы. В этом случае решить проблему можно быстро и без потери необходимых данных. Резервные копии можно делать вручную или настроить их сохранение автоматически. Кроме того, специалисты рекомендуют создавать резервную БД перед началом обновления. Для этого нужно:

  • Перейти в режим конфигуратора;
  • Включить режим администрирования БД и выбрать пункты «Администрирование – Выгрузить информационную базу»;
  • Выберите путь, в который программа сохранит БД, и ее название.

Лучше всего сохранять БД на внешний носитель – например, на жесткий диск или флэш-карту.

Автоматическая архивация осуществляется с помощью дополнительных программ. О том, какой лучше воспользоваться, можно спросить у специалистов компании Авиант.

Файл не содержит доступных обновлений

Если во время обновления 1С появляется ошибка «Файл не содержит доступных обновлений», значит, не совпадают конфигурации ПО. Как правило, это сообщение также содержит список необходимых версий. Такое случается, когда вы долго не совершали апдейт программы. Поэтому, если вы пропустите больше полугода обслуживания, вас может ждать неприятный сюрприз – целый день (а может и больше) последовательных обновлений с самого первого пропущенного релиза до последнего. Ведь один апдейт может занять больше часа.

Ошибки при обновлении 1С

Можно ли ускорить обновление? Для этого потребуется актуальный релиз файла конфигурации 1Cv8.cf. Последовательность действий следующая:

  • Активируйте режим «Конфигуратор»;
  • Далее перейдите в меню «Конфигурация – Поддержка – Настройка поддержки – Включить возможность изменения конфигурации»;
  • Появится предупреждение о невозможности выполнять обновление автоматически полностью – нажмите кнопку «Да»;
  • В окне настройки правил поддержки включите дважды выберите «Объект поставщика редактируется с сохранением поддержки». На изменение режима уйдет несколько минут;
  • Закрыв последнее окно, перейдите в меню «Конфигурация – Загрузить конфигурацию из файла»;
  • Найдите на компьютере файл 1Cv8.cf с актуальным релизом и откройте его;
  • Появится предупреждение о замене текущей версии на загружаемую, нажмите «Да». Загрузка может занять несколько минут, после чего вам потребуется обновить конфигурацию БД;
  • В зависимости от объема вашей базы данных обновление может занять до нескольких часов. В процессе загрузки вы увидите окно «Реорганизация информации», в котором нужно нажать кнопку «Принять»;
  • Далее нажмите кнопку F5 на клавиатуре или же найдите опцию «Начать отладку» и подтвердите легальность обновления.

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

Ошибка формата потока

Еще одна распространенная ошибка после обновления платформы 1С. Чаще всего является следствием непоследовательного апдейта и сравнивания своей сборки ПО с файлом поставки. Это делают для того, чтобы сэкономить время: файл поставки и имеющаяся версия сравниваются, изменения выписываются, а затем вносятся в уже имеющуюся конфигурацию.

Чтобы исправить ее, необходимо очистить кэш вашей программы. Для этого:

  • Завершите все процессы в программе и закройте ее;
  • Вручную найдите папки с кэшем – как правило, они располагаются в директориях C:/Users/Username/AppData/Roaming/1C в папках, название которых начинается с 1Cv8. Если найти эти папки не получается, настройте видимость скрытых файлов и папок в настройках компьютера;
  • В этой директории могут находиться другие папки с очень длинными именами из букв и цифр – их и нужно удалить.

Также очистить кэш можно автоматически: перейдя в режим конфигуратора и в меню «Администрирование – Тестирование и обновление» отметьте пункты «Реиндексация таблиц информационной базы» и «Проверка логистической целостности ИБ». Нажмите «Выполнить», и программа сама проверит базу, найдет ошибки, исправит их – и предоставит вам отчет.

Если эти способы не помогли, обратитесь к своему программисту или специалистам компании «Авиант».

Предопределенный элемент отсутствует в данных

Если при обновлении вашей конфигурации платформы 1С появляется сообщение об этой ошибке, значит предопределенный элемент описан в конфигурации, но при этом отсутствует в вашей информационной базе (ИБ). Однако эта ситуация критична. Вполне вероятно, что использование не найденного элемента необходимо программной логике, которая не используется большинством пользователей вашей программы.

Однако такая ошибка 1С базы требует обращения к программисту, который сможет проанализировать причину ее появления и либо создать необходимый элемент в ИБ, либо создать его только для тех ИБ, для которых его требует программная логика.

Ошибка при вызове метода контекста

Это сообщение часто появляется после обновления базы в случаях, когда конфигурация программы сильно повреждена. Вы будете наблюдать следующее: программа выполняет обновление до определенного момента, после чего «вылетает» или начинает процесс с самого начала.

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

Нужна консультация по возможностям и функционалу программы
«1C Розница 8»?

Специалисты 1С ответят на любые вопросы
и помогут выбрать программу абсолютно бесплатно!

Заказать бесплатную консультацию

Ошибки при обновлении нетиповой конфигурации

Другое дело – обновление доработанной 1С. Ошибка в такой версии программы может привести к серьезным последствиям. Как правило доработкой программ занимается штатный программист, поэтому обычный пользователь – бухгалтер или администратор, — может не разобраться в причинах появившейся проблемы. Так что ошибки апдейта нетиповой ПО стоит доверить профессионалам.

Но можно и вовсе избежать проблем, подключив пакет ИТС 1С от «Авиант». Так ошибки обновления базы, конфликты программы с другими ПО, неактуальные формы документов и неправильно оформленная отчетность останутся в прошлом. Удобные тарифы, официальное программное обеспечение, единые цены от компании 1С и максимальная эффективность поддержки – все это входит в пакет ИТС от «Авиант».

Как в 1С изменить ставку НДС

При попытке выполнить обновление конфигурации 1С:Предприятие возникает ошибка:

Ошибка при проверке подключения к информационной базе
Ошибка при вызове метода контекста (Connect)

Если при этом в журнале регистрации (Сервис → Журнал регистрации) имеет место быть подобная запись:

Обработка.ОбновлениеКонфигурации.МодульОбъекта(1440)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V82.COMConnector.1): Версия компоненты ‘comcntr’ (8.2.19.102) отличается от версии корневого модуля ‘core82′ (8.2.19.80)

То проблема наблюдается из-за того, что в ОС установлены две версии 1С:Бухгалтерия, одна поверх другой.
Обойти данную ошибку можно выполнив обновление в конфигураторе: Конфигурация → Поддержка → Обновить конфигурацию.

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

Исправляем ситуацию

Чтобы избавиться от этого неприятного сообщения об ошибке при вызове метода контекста, следует понимать, что контекстом называют методы платформы 1С. Значит в определенной строке кода воспользовались методом с неверными параметрами или вызвали его не от того владельца. Всегда внимательно и полностью читайте сообщения об ошибках – часто в них содержится указание на строку и метод, вызвавший ошибку. Это поможет сэкономить время на отладку и поиск проблемного места в коде.

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


	 Запрос = Новый Запрос;
	 Запрос.Текст =
	         "ВЫБРАТЬ
	          |        Номенклатура.Ссылка КАК Ссылка,
	          |        Номенклатура.ВерсияДанных КАК ВерсияДанных,
	          |        Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
	          |        Номенклатура.Родитель КАК Родитель,
	          |        Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
	          |        Номенклатура.Код КАК Код,
	          |        Номенклатура.Наименование КАК Наименование,
	          |        Номенклатура.Артикул КАК Артикул,
	          |        Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	          |        Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	          |        Номенклатура.Предопределенный КАК Предопределенный,
	          |        Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
	          |ИЗ
	          |        Справочник.Номенклатура КАК Номенклатура
	          |ГДЕ
	          |         ";
	 РезультатЗапроса = Запрос.Выполнить();
	 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 КонецЦикла;
Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора
Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора

Приведенный текст ошибки программисту 1С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.

Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.

Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.


	 Запрос = Новый Запрос;
	            Запрос.Текст =
	                       "ВЫБРАТЬ
	                        |          Номенклатура.Ссылка КАК Ссылка,
	                        |          Номенклатура.ВерсияДанных КАК ВерсияДанных,
	                        |          Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
	                        |          Номенклатура.Родитель КАК Родитель,
	                        |          Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
	                        |          Номенклатура.Код КАК Код,
	                        |          Номенклатура.Наименование КАК Наименование,
	                        |          Номенклатура.Артикул КАК Артикул,
	                        |          Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	                        |          Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	                        |          Номенклатура.Предопределенный КАК Предопределенный,
	                        |          Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
	                        |ИЗ
	                        |          Справочник.Номенклатура КАК Номенклатура
	                        |ГДЕ
	                        |          НЕ Номенклатура.ЭтоГруппа ";
	 НужнаяГруппаЭлементов = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");
	 РезультатЗапроса = Запрос.Выполнить();
	 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 Сообщить(ВыборкаДетальныеЗаписи.Ссылка.ПринадлежитЭлементу("НужнаяГруппаЭлементов"));
	 КонецЦикла;
Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной
Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной

1С выдает настолько же информативное сообщение, из которого мы понимаем, что на 158 строке у 1 параметра неправильный тип. Но что же делать, если мы не знаем, какой тип должен быть? В этом нам поможет Синтакс-помощник, встроенный в платформу 1С.

Рис.3 Синтакс-помощник
Рис.3 Синтакс-помощник

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

Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает
Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает

Чаще всего причиной подобных ошибок выступают следующие факторы:

  1. Невнимательность;
  2. Отсутствие опыта или знаний;
  3. Несогласованность действий разработчиков друг с другом;
  4. Изменения в методах контекста в новых версиях платформы.

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

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

Новая тема

Ответить

Имя предопределенного элемента не уникально

Часто пользователи сталкиваются с сообщением «Имя предопределенного элемента не уникально». Такая ошибка при обновлении стандартной конфигурации 1С возникает из-за некорректного апдейта последней версии программы. Чтобы исправить проблему, можно откатить ПО к прошлой версии программы. Частично это сделать нельзя: вам придется скачать и установить предыдущую версию программы с сайта разработчика или же вернуться к ее резервной копии.

Если у вас есть резервная копия БД, вам потребуется:

  • Зайти в режим конфигуратора;
  • Перейти в меню «Администрирование – Загрузить информационную базу»;
  • Далее найдите файл, в котором ранее была сохранена резервная копия в формате .dt;
  • Система предупредит вас о том, что несохраненная ранее информация будет потеряна – согласитесь с этим и дождитесь загрузки ИД;
  • После успешной выгрузки перезапустите конфигуратор.

Резервное копирование – важная операция, которая позволит вам сэкономить время при появлении ошибки обновления локальной базы. В этом случае решить проблему можно быстро и без потери необходимых данных. Резервные копии можно делать вручную или настроить их сохранение автоматически. Кроме того, специалисты рекомендуют создавать резервную БД перед началом обновления. Для этого нужно:

  • Перейти в режим конфигуратора;
  • Включить режим администрирования БД и выбрать пункты «Администрирование – Выгрузить информационную базу»;
  • Выберите путь, в который программа сохранит БД, и ее название.

Лучше всего сохранять БД на внешний носитель – например, на жесткий диск или флэш-карту.

Автоматическая архивация осуществляется с помощью дополнительных программ. О том, какой лучше воспользоваться, можно спросить у специалистов компании Авиант.

Файл не содержит доступных обновлений

Если во время обновления 1С появляется ошибка «Файл не содержит доступных обновлений», значит, не совпадают конфигурации ПО. Как правило, это сообщение также содержит список необходимых версий. Такое случается, когда вы долго не совершали апдейт программы. Поэтому, если вы пропустите больше полугода обслуживания, вас может ждать неприятный сюрприз – целый день (а может и больше) последовательных обновлений с самого первого пропущенного релиза до последнего. Ведь один апдейт может занять больше часа.

Ошибки при обновлении 1С

Можно ли ускорить обновление? Для этого потребуется актуальный релиз файла конфигурации 1Cv8.cf. Последовательность действий следующая:

  • Активируйте режим «Конфигуратор»;
  • Далее перейдите в меню «Конфигурация – Поддержка – Настройка поддержки – Включить возможность изменения конфигурации»;
  • Появится предупреждение о невозможности выполнять обновление автоматически полностью – нажмите кнопку «Да»;
  • В окне настройки правил поддержки включите дважды выберите «Объект поставщика редактируется с сохранением поддержки». На изменение режима уйдет несколько минут;
  • Закрыв последнее окно, перейдите в меню «Конфигурация – Загрузить конфигурацию из файла»;
  • Найдите на компьютере файл 1Cv8.cf с актуальным релизом и откройте его;
  • Появится предупреждение о замене текущей версии на загружаемую, нажмите «Да». Загрузка может занять несколько минут, после чего вам потребуется обновить конфигурацию БД;
  • В зависимости от объема вашей базы данных обновление может занять до нескольких часов. В процессе загрузки вы увидите окно «Реорганизация информации», в котором нужно нажать кнопку «Принять»;
  • Далее нажмите кнопку F5 на клавиатуре или же найдите опцию «Начать отладку» и подтвердите легальность обновления.

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

Ошибка формата потока

Еще одна распространенная ошибка после обновления платформы 1С. Чаще всего является следствием непоследовательного апдейта и сравнивания своей сборки ПО с файлом поставки. Это делают для того, чтобы сэкономить время: файл поставки и имеющаяся версия сравниваются, изменения выписываются, а затем вносятся в уже имеющуюся конфигурацию.

Чтобы исправить ее, необходимо очистить кэш вашей программы. Для этого:

  • Завершите все процессы в программе и закройте ее;
  • Вручную найдите папки с кэшем – как правило, они располагаются в директориях C:/Users/Username/AppData/Roaming/1C в папках, название которых начинается с 1Cv8. Если найти эти папки не получается, настройте видимость скрытых файлов и папок в настройках компьютера;
  • В этой директории могут находиться другие папки с очень длинными именами из букв и цифр – их и нужно удалить.

Также очистить кэш можно автоматически: перейдя в режим конфигуратора и в меню «Администрирование – Тестирование и обновление» отметьте пункты «Реиндексация таблиц информационной базы» и «Проверка логистической целостности ИБ». Нажмите «Выполнить», и программа сама проверит базу, найдет ошибки, исправит их – и предоставит вам отчет.

Если эти способы не помогли, обратитесь к своему программисту или специалистам компании «Авиант».

Предопределенный элемент отсутствует в данных

Если при обновлении вашей конфигурации платформы 1С появляется сообщение об этой ошибке, значит предопределенный элемент описан в конфигурации, но при этом отсутствует в вашей информационной базе (ИБ). Однако эта ситуация критична. Вполне вероятно, что использование не найденного элемента необходимо программной логике, которая не используется большинством пользователей вашей программы.

Однако такая ошибка 1С базы требует обращения к программисту, который сможет проанализировать причину ее появления и либо создать необходимый элемент в ИБ, либо создать его только для тех ИБ, для которых его требует программная логика.

Ошибка при вызове метода контекста

Это сообщение часто появляется после обновления базы в случаях, когда конфигурация программы сильно повреждена. Вы будете наблюдать следующее: программа выполняет обновление до определенного момента, после чего «вылетает» или начинает процесс с самого начала.

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

Нужна консультация по возможностям и функционалу программы
«1C Розница 8»?

Специалисты 1С ответят на любые вопросы
и помогут выбрать программу абсолютно бесплатно!

Заказать бесплатную консультацию

Ошибки при обновлении нетиповой конфигурации

Другое дело – обновление доработанной 1С. Ошибка в такой версии программы может привести к серьезным последствиям. Как правило доработкой программ занимается штатный программист, поэтому обычный пользователь – бухгалтер или администратор, — может не разобраться в причинах появившейся проблемы. Так что ошибки апдейта нетиповой ПО стоит доверить профессионалам.

Но можно и вовсе избежать проблем, подключив пакет ИТС 1С от «Авиант». Так ошибки обновления базы, конфликты программы с другими ПО, неактуальные формы документов и неправильно оформленная отчетность останутся в прошлом. Удобные тарифы, официальное программное обеспечение, единые цены от компании 1С и максимальная эффективность поддержки – все это входит в пакет ИТС от «Авиант».

Как в 1С изменить ставку НДС

При попытке выполнить обновление конфигурации 1С:Предприятие возникает ошибка:

Ошибка при проверке подключения к информационной базе
Ошибка при вызове метода контекста (Connect)

Если при этом в журнале регистрации (Сервис → Журнал регистрации) имеет место быть подобная запись:

Обработка.ОбновлениеКонфигурации.МодульОбъекта(1440)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V82.COMConnector.1): Версия компоненты ‘comcntr’ (8.2.19.102) отличается от версии корневого модуля ‘core82′ (8.2.19.80)

То проблема наблюдается из-за того, что в ОС установлены две версии 1С:Бухгалтерия, одна поверх другой.
Обойти данную ошибку можно выполнив обновление в конфигураторе: Конфигурация → Поддержка → Обновить конфигурацию.

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

Исправляем ситуацию

Чтобы избавиться от этого неприятного сообщения об ошибке при вызове метода контекста, следует понимать, что контекстом называют методы платформы 1С. Значит в определенной строке кода воспользовались методом с неверными параметрами или вызвали его не от того владельца. Всегда внимательно и полностью читайте сообщения об ошибках – часто в них содержится указание на строку и метод, вызвавший ошибку. Это поможет сэкономить время на отладку и поиск проблемного места в коде.

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


	 Запрос = Новый Запрос;
	 Запрос.Текст =
	         "ВЫБРАТЬ
	          |        Номенклатура.Ссылка КАК Ссылка,
	          |        Номенклатура.ВерсияДанных КАК ВерсияДанных,
	          |        Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
	          |        Номенклатура.Родитель КАК Родитель,
	          |        Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
	          |        Номенклатура.Код КАК Код,
	          |        Номенклатура.Наименование КАК Наименование,
	          |        Номенклатура.Артикул КАК Артикул,
	          |        Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	          |        Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	          |        Номенклатура.Предопределенный КАК Предопределенный,
	          |        Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
	          |ИЗ
	          |        Справочник.Номенклатура КАК Номенклатура
	          |ГДЕ
	          |         ";
	 РезультатЗапроса = Запрос.Выполнить();
	 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 КонецЦикла;
Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора
Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора

Приведенный текст ошибки программисту 1С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.

Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.

Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.


	 Запрос = Новый Запрос;
	            Запрос.Текст =
	                       "ВЫБРАТЬ
	                        |          Номенклатура.Ссылка КАК Ссылка,
	                        |          Номенклатура.ВерсияДанных КАК ВерсияДанных,
	                        |          Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
	                        |          Номенклатура.Родитель КАК Родитель,
	                        |          Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
	                        |          Номенклатура.Код КАК Код,
	                        |          Номенклатура.Наименование КАК Наименование,
	                        |          Номенклатура.Артикул КАК Артикул,
	                        |          Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	                        |          Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	                        |          Номенклатура.Предопределенный КАК Предопределенный,
	                        |          Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
	                        |ИЗ
	                        |          Справочник.Номенклатура КАК Номенклатура
	                        |ГДЕ
	                        |          НЕ Номенклатура.ЭтоГруппа ";
	 НужнаяГруппаЭлементов = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");
	 РезультатЗапроса = Запрос.Выполнить();
	 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 Сообщить(ВыборкаДетальныеЗаписи.Ссылка.ПринадлежитЭлементу("НужнаяГруппаЭлементов"));
	 КонецЦикла;
Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной
Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной

1С выдает настолько же информативное сообщение, из которого мы понимаем, что на 158 строке у 1 параметра неправильный тип. Но что же делать, если мы не знаем, какой тип должен быть? В этом нам поможет Синтакс-помощник, встроенный в платформу 1С.

Рис.3 Синтакс-помощник
Рис.3 Синтакс-помощник

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

Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает
Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает

Чаще всего причиной подобных ошибок выступают следующие факторы:

  1. Невнимательность;
  2. Отсутствие опыта или знаний;
  3. Несогласованность действий разработчиков друг с другом;
  4. Изменения в методах контекста в новых версиях платформы.

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

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

Новая тема

Ответить

Дмитрий

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

Здравствуйте.

Обновляю 1С бухгалтерию с 2.0.60.4 на редакцию 3.0.34.14. Обновление показывает 12 предупреждений и проходит. При запуске 1С идет процентное формирование конфигурации и выводит ошибку:

Событие:
Обновление информационной базы

Комментарий:

Код
{ОбщийМодуль.РегламентированнаяОтчетность.Модуль(3508)}: Ошибка при вызове метода контекста (Записать) 
             Док.Записать();

по причине:

Ошибка при выполнении обработчика — ‘ПриЗаписи’
по причине:

Код
{ОбщийМодуль.РегламентированнаяОтчетностьПереопределяемый.Модуль(48)}: Значение не является значением объектного типа (Прочитать)
             Док.Записать();

Помогите, пожалуйста. 1с предприятие последней версии

VVP

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

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

Дмитрий

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

Ясно. Спасибо. Делаю тестирование. Такой вопрос — если я поставлю очищать пустые записи и ссылки при исправлении — данные не пропадут? Или что лучше посоветуете выбрать?

VVP

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

Дмитрий,
Ставь на очищение — хуже не будет. Во всяком случае, я всегда так делаю и нужные данные не пропадают. При создании объектов выдаст какую-нубудь фигню типа F0000001. Потом не будешь знать, куда ее приткнуть. Впрочем, все это очень индивидуально.

Дмитрий

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

Ага, спасибо. Сделал все. При обновлении эту ошибку проскакивает. Все хорошо. Сейчас застряло на ошибке: запись неверна. поле головная организация не должно быть пустым. Переделал сотрудника, на котором ошибка была. Заново обновляю. О результатах отпишусь

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

Читают тему:

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