Обнаружены ошибки конфигурации тип не указан

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

Предистория: Бухгалтерия предприятия базовая 2.0.66.138 нужно обновить до актуального релиза бухгалтерии 3.0.

Каких-то особых выдумок я применять не стал, скачал обновление с https://releases.1c.ru/total и установил его. Я сильно удивился увидев ошибку тип не определен.

В начале я попробовал откатится к версии до обновления. Хорошо что я перед работами всегда делаю бекап. Сделал тестирование и исправление, проверил базу на повреждения, обновил повторно, но получил ту же ошибку. После этого решил посмотреть журнал регистрации и поправить ошибку в отладке.

Журнал регистрации всеми силами направлял меня в общий модуль управление доступом служебный.

тип не определен, журнал регистрации

тип не определен, журнал регистрации
Тип не определен
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(26085)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(25277)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(24362)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(23491)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(23243)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(22956)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(22337)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(22217)}:
{РегистрСведений.ПараметрыОграниченияДоступа.МодульМенеджера(206)}:ДействующиеПараметры = УправлениеДоступомСлужебный.ДействующиеПараметрыОграниченияДоступа(
{РегистрСведений.ПараметрыОграниченияДоступа.МодульМенеджера(157)}:ЗапланироватьОбновление_00_00268406("ПереходНаВерсиюБСП_3.0.3.168");
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(4489)}:
{(1)}:УправлениеДоступомСлужебный.ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации()
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(6320)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2155)}:ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1707)}:ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}:ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2289)}:Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1036)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

Перехожу в конфигуратор ищу ОбщийМодуль.УправлениеДоступомСлужебный и что же я вижу. Исходный текст модуля отсутствует, конфигурация на поддержке и снимать и ломать модуль для рядового обновления это точно ложный путь.

Общий Модуль Управление Доступом Служебный

Общий Модуль Управление Доступом Служебный

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

https://bugboard.v8.1c.ru/error/000100482
https://partners.v8.1c.ru/forum/topic/1950512

В версиях платформы до 8.3.22.1704 конструкция Тип(«») (где в качестве аргумента — пустая строка), возвращала пустое значение типа Тип, в новой версии платформы попытка выполнения данной конструкции приводит к ошибке.

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

Я не стал выдумывать патчи и писать какие-то доработки, просто использовал более старую версию платформы и все заработало.

Какой можно сделать вывод из этой истории — нужно обновлять платформу и конфигурации вовремя!

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

Предистория: Бухгалтерия предприятия базовая 2.0.66.138 нужно обновить до актуального релиза бухгалтерии 3.0.

Каких-то особых выдумок я применять не стал, скачал обновление с https://releases.1c.ru/total и установил его. Я сильно удивился увидев ошибку тип не определен.

В начале я попробовал откатится к версии до обновления. Хорошо что я перед работами всегда делаю бекап. Сделал тестирование и исправление, проверил базу на повреждения, обновил повторно, но получил ту же ошибку. После этого решил посмотреть журнал регистрации и поправить ошибку в отладке.

Журнал регистрации всеми силами направлял меня в общий модуль управление доступом служебный.

тип не определен, журнал регистрации

тип не определен, журнал регистрации
Тип не определен
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(26085)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(25277)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(24362)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(23491)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(23243)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(22956)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(22337)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(22217)}:
{РегистрСведений.ПараметрыОграниченияДоступа.МодульМенеджера(206)}:ДействующиеПараметры = УправлениеДоступомСлужебный.ДействующиеПараметрыОграниченияДоступа(
{РегистрСведений.ПараметрыОграниченияДоступа.МодульМенеджера(157)}:ЗапланироватьОбновление_00_00268406("ПереходНаВерсиюБСП_3.0.3.168");
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(4489)}:
{(1)}:УправлениеДоступомСлужебный.ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации()
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(6320)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2155)}:ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1707)}:ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}:ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2289)}:Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1036)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

Перехожу в конфигуратор ищу ОбщийМодуль.УправлениеДоступомСлужебный и что же я вижу. Исходный текст модуля отсутствует, конфигурация на поддержке и снимать и ломать модуль для рядового обновления это точно ложный путь.

Общий Модуль Управление Доступом Служебный

Общий Модуль Управление Доступом Служебный

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

https://bugboard.v8.1c.ru/error/000100482
https://partners.v8.1c.ru/forum/topic/1950512

В версиях платформы до 8.3.22.1704 конструкция Тип(“”) (где в качестве аргумента – пустая строка), возвращала пустое значение типа Тип, в новой версии платформы попытка выполнения данной конструкции приводит к ошибке.

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

Я не стал выдумывать патчи и писать какие-то доработки, просто использовал более старую версию платформы и все заработало.

Какой можно сделать вывод из этой истории – нужно обновлять платформу и конфигурации вовремя!

  

vasso

29.06.11 — 10:16

Полетела база : УТ (снятая с поддержки)

win serv 2008R2, SQL 2005, платформа 8.2.13.219

При динамическом обновлении (были внесены след изменения

1) открытие конфигуратора на локальной машине пользователя под логином администратора,

2) в плане обмена открытие раздела «состав»,

3) установка у документа «СчетФактураПолученный» галочки «Авторегистрация» в режим «Разрешить»,

4) Сохранение и динамическое обновление конфигурации.

ВСЕ!)

выдал после обновления  и авторизации ошибку «Тип не определен’a087679….»

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

Сама база не маленькая (более 100 гигов).

Вечер и ночь пытались реанимировать с учетом личного опыта и того что нашли в инете

1) почистили кэш сервера 1С

2) выгрузка/загрузка средствами 1С в поверх

3) выгрузка загрузка в новую базу(пустую)

4) откат платформы до 205 релиза

5) бета 8.2.14 в которой упоминается о такой ошибке и о том что проблему пофикисли

6) между 1п. и 2п. пытались выловить ошибку при запуске системы (модуль внешнего соединения. проц. ПриНачалеРаботыСистемы, модуль сеанса проц. УстановкаПараметровСеанса, гл. модуль «ПолныеПрава» проц. УстановитьПараметрыСеанса)

7) не дает откатить внесенные изменения — экстренное завершение работы программы. в журнале ошибок след инфа

Имя сбойного приложения: 1cv8.exe, версия: 8.2.13.219, отметка времени: 0x4d80c789

Имя сбойного модуля: basic.dll, версия: 8.2.13.219, отметка времени 0x4d80c048

Код исключения: 0xc0000005

Смещение ошибки: 0x000ac9a0

Идентификатор сбойного процесса: 0xa5c

Время запуска сбойного приложения: 0x01cc361feecbdd66

Путь сбойного приложения: C:Program Files (x86)1cv828.2.13.219bin1cv8.exe

Путь сбойного модуля: C:Program Files (x86)1cv828.2.13.219binbasic.dll

Код отчета: 429550bb-a214-11e0-b91e-78e3b508de6f

8) не дает  провести реструктуризацию таблиц через тестирование и исправление

Что делаем не так? Что можно еще предпринять?

Заранее спасибо всем откликнувшимся (ситуация полный ахтунг!)

PS: бэкап есть только 10-ти дневной давности — не вариант(отдельные слова благодарности админам, но сейчас не об этом)

  

Amiralnar

1 — 29.06.11 — 10:18

Предлагаю:

3) выгрузка загрузка в новую базу(пустую) — (файловую) и chdbfl.exe

  

vasso

2 — 29.06.11 — 10:20

не указал — в файловую не пролазит(срабатывает ограничение по объему таблиц для файловой)

  

vasso

3 — 29.06.11 — 10:20

все перечисленное уже проделано. Что еще можно предпринять.

  

lxs

4 — 29.06.11 — 10:21

backup не сделал естественно?

  

vasso

5 — 29.06.11 — 10:21

«PS: бэкап есть только 10-ти дневной давности — не вариант(отдельные слова благодарности админам, но сейчас не об этом)»

  

PLUT

6 — 29.06.11 — 10:22

демоническое обговление это зло, одноэсы писали уже официально

  

lxs

7 — 29.06.11 — 10:22

(5) очень захотелось нарушить п.1 Правил.. если база большого размера, то какого х.. вообще используете динамику???

  

lxs

8 — 29.06.11 — 10:23

за 10 дней так много изменений? База распределенка?

  

volsh77n

9 — 29.06.11 — 10:24

Перед обновлением всегда делаю контрольный бекап. На админа не надеюсь. Если даже что-то сделаете база будет кривая с плавающими обортомаи. ОБновлять динамически без бекапа …

  

Maxus43

10 — 29.06.11 — 10:25

как обычно всё сводится к ССЗБ

  

lxs

11 — 29.06.11 — 10:26

Как вариант на чистой машине раскрути серваки Win, SQL и сервер предприятия. И попробуй там поднять базу. Если не поможет, досвидос.

  

vasso

12 — 29.06.11 — 10:26

объем реально очень большой(понятно что времени ковырять битую базу не так много — максимум до вечера сегодняшнего дня)

дальше берем последний бэкап и вперед!!!

Но при целых то   файлах  БД SQL  *.mdf (объемом в 115 гиг) мне кажется правильней будет не попробовать восстановить

  

volsh77n

13 — 29.06.11 — 10:29

*.CF пробовали  из бекапа 10 дневной давности  выгрузить и загрузить без сравнения?

  

lxs

14 — 29.06.11 — 10:30

(13) он же сказал, «не вариант» почему-то

  

vasso

15 — 29.06.11 — 10:30

(9) изменений в структуре никаких.

Была определенная срочность с настройкой обменов (рабочий процесс прервать не было возможности )

Все ошибки понятны. Прошу реальных идей по восстановлению.

Что такого могло произойти при динамическом обновлении, что придется хоронить базу(данные то все целы, это очевидно)

  

Amiralnar

16 — 29.06.11 — 10:31

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

  

vasso

17 — 29.06.11 — 10:31

(13) (14) при попытке обновить конфигурацию вылетает  с ошибкой (описание п.7)

  

Amiralnar

18 — 29.06.11 — 10:32

>  это очевидно

Мне это не очевидно. Данные и повредились, скорее всего.

Пробовали загрузить cf-ник с рабочей копии? Если грузится, накатывается, и вызывает ошибку — это битте данне.

  

vasso

19 — 29.06.11 — 10:34

(18) пробовали, вылетает с ошибкой

  

lxs

20 — 29.06.11 — 10:35

DBCC CHECKDB

DBCC CHECKALLOC

  

Amiralnar

21 — 29.06.11 — 10:35

Звоните в 1С, они уже проснулись.

  

Maxus43

22 — 29.06.11 — 10:36

(21) Там скажут что юзеры деляться на 2 вида: те кто делает бэкапы и те кто ещё не делает

  

lxs

23 — 29.06.11 — 10:37

(21) Они упп на облачную переводят, не надо им мешать.

  

lxs

24 — 29.06.11 — 10:37

(22) +100500, собственно то же, что было сказано и здесь)) Вопрос: чем 1С отличается от мисты?))

  

volsh77n

25 — 29.06.11 — 10:41

Как производить проверку, переиндексацию базы на SQL Server

Проверку логической целостности нужно выполнять штатными средствами 1С:Предприятия (Тестирование и исправление ИБ). В случае, если такую проверку не удается выполнить, следует проверить физическую целостность БД средствами MS SQL. Для проверки целостности средствами MS SQL нужно выполнить следующую команду: DBCC CHECKDB (‘<имя базы>’,REPAIR_REBUILD) Перед выполнением этой команды нужно базу данных перевести в режим «single user»: sp_dboption ‘<имя базы>’,’single user’,true. В процессе работы DBCC CHECKDB могут быть обнаружены ошибки и часть может быть сразу же исправлена. Если ошибки остались, то по всей видимости их нельзя восстановить без потери некоторых данных. В этом случае нужно запустить DBCC CHECKDB с параметром REPAIR_ALLOW_DATA_LOSS (перед запуском желательно сделать копию файлов базы данных). DBCC CHECKDB (‘<имя базы>’,REPAIR_ALLOW_DATA_LOSS) После выполнения DBCC CHECKDB нужно не забыть вернуться в нормальный режим (выйти из режима «single user»): sp_dboption ‘<имя базы>’,’single user’,false Переиндексацию базы данных на MS SQL не нужно делать так часто, как в случае с DBF-версией 1С:Предприятия (например, при аварийном завершении работы пользователя). MS SQL автоматически поддерживает индексы в актуальном состоянии. Пересоздавать индексы имеет смысл в одном из следующих случаев:

1) Индекс физически поврежден. Это случается довольно редко и для восстановления нужно использовать вышеупомянутый DBCC CHECKDB.

2) Страницы индекса сильно фрагментированы и требуется их упорядочить.

3) Нужно изменить степень заполнения индексных страниц (fill factor).

4) Требуется изменить тип индекса (кластерный/некластерный). При использовании 1С это обычно неактуально.

Для пересоздания индексов следует воспользоваться командой: DBCC DBREINDEX (‘<имя таблицы>’) или запустить хранимую процедуру, которая переиндексирует все таблицы в базе данных: EXEC _1sp_DBReindex

http://www.1csql.ru/materials/faq/admin.html?pagenumber=2

  

vasso

26 — 29.06.11 — 10:41

тем что 1С будет отвечать дольше и не факт что адекватней — поэтому здесь.

Вся надежда на коллективный разумопыт

запустил пока DBCC CHECKDB  — т.к. объемы внушительные займет какоето время (есть еще одна копия базы — если есть еще соображения скидывайте)

  

volsh77n

27 — 29.06.11 — 10:44

Тут реально у тебя могут внутренний гуайды слететь в базе и при обмене может пойти «каша». Мысли в слух…

  

lxs

28 — 29.06.11 — 10:47

(27) при динамике с учетом порочного кэша могло произойти что угодно.

  

GoldenDawn

29 — 29.06.11 — 10:48

(28)там транзакции должны быть, если конечно тинейджеры 1С о них знают

  

Boris_Britva

30 — 29.06.11 — 10:49

(0) есть какие-то проги сервисы по проверки файла базы данных, не помню название, по-гугли, она проверят файл на ошибки, меня спасало

  

strange2007

31 — 29.06.11 — 10:49

Восстановить нормальный архив и перенести инфу за 10 дней из битой базы

  

lxs

32 — 29.06.11 — 10:50

(29) Обновление накатили уже. Поэтому пофигу — должны они быть или не должны.

  

Maxus43

33 — 29.06.11 — 10:50

(29) при динамическом не спасает даже святая вода

  

GoldenDawn

34 — 29.06.11 — 10:50

(26)

«3) установка у документа «СчетФактураПолученный» галочки «Авторегистрация» в режим «Разрешить»,

»

сделать обратное и обновить, перед эти перепрописать базу (очистить кеш)

  

Boris_Britva

35 — 29.06.11 — 10:50

+(30) причем тоже тестирование и исправление тупо затыкалось 1с-ное, а прога помогла, плюс у тебя SQL-вариант, попробуй запустить проверку базы оттуда

  

GoldenDawn

36 — 29.06.11 — 10:51

поднять базу 10 дневной давности и запустить ТИИ, посмотреть как пройдет

  

vasso

37 — 29.06.11 — 10:51

(31) опыта такого переноса нет — есть что почитать на эту тему?

  

Boris_Britva

38 — 29.06.11 — 10:51

(33) типун тебе, пару раз выходил из ситуации))) напугаешь сейчас человека

  

lxs

39 — 29.06.11 — 10:54

(33) Перед тем, как нажать Да для запуска динамического обновления, надо перекреститься, трижды сплюнуть через левое плечо, вспомнить всю свою прошлую жизнь (лучшие ее моменты) и на всякий случай приготовить баку вазелина и шаблон заявления об увольнении по собственному без отработки двух недель.

  

GoldenDawn

40 — 29.06.11 — 10:54

(0)ну ладно переставили бы. но зачем это:

«4) откат платформы до 205 релиза »

?

  

vasso

41 — 29.06.11 — 10:54

(33) валится конфигуратор при обновлении (писал изначально)

пробовали перепрописывать базы в том числе

  

GoldenDawn

42 — 29.06.11 — 10:56

(41)а если выгрузить конфигурацию БД и загрузить её?

«8) не дает  провести реструктуризацию таблиц через тестирование и исправление » — это в чем выражается?

  

rs_trade

43 — 29.06.11 — 10:57

тех. журнал что пишет?

  

Boris_Britva

44 — 29.06.11 — 10:57

(0) Послушай совета, сделай реструкуризацию и тестирование базы через скуль, выручает

  

strange2007

45 — 29.06.11 — 10:57

Кто против (31)? Почему способ плохой? Вдруг у меня тоже будет трындец

  

vasso

46 — 29.06.11 — 10:58

(42) п.2 и п.3 — не помогло

п.8 — валится так же как и при п.7

  

Amiralnar

47 — 29.06.11 — 10:59

(45) А он войти в базу не может. Что ему переносить? По памяти?

  

Boris_Britva

48 — 29.06.11 — 10:59

(45) а как ты себе это представляешь?? Данные как вырезать будешь, а если задним числом доки проводят.

  

shamannk

49 — 29.06.11 — 10:59

(0) Ну ты тип, перед обнов копию не сделал и на админа косит!!!

  

rs_trade

50 — 29.06.11 — 11:00

Автор, с момента последнего бэкапа и до текущего состояния базы, вносились ли изменения влияющие на структуру таблиц?

  

strange2007

51 — 29.06.11 — 11:02

(47) Мда, я не внимателен. Но если бы можно было запустить, то решение хорошее

  

rs_trade

52 — 29.06.11 — 11:06

1. сделайте бекап текущей базы
2. восстановите в отдельную базу старый бекап
3. в текущей базе очистите таблицы Config, DBSchema, Params
4. перенесите содержимое этих таблиц из старого бэкапа

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

  

vasso

53 — 29.06.11 — 11:08

(50) Нет. Изменений не вносилось.

  

Boris_Britva

54 — 29.06.11 — 11:08

  

vasso

55 — 29.06.11 — 11:09

никто не против (31) — нет аналогично опыта, я так понимаю, процедура не тривиальная.

если есть доступная информация по этой теме буду признателен, если скинете

  

Boris_Britva

56 — 29.06.11 — 11:11

(0) А вообще в режим конфигуратора входит?? появилась идея.

  

volsh77n

57 — 29.06.11 — 11:12

(56) входит же, конфу выгружал загружал

  

Boris_Britva

58 — 29.06.11 — 11:14

В общем народ, на обсуждение.

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

  

Boris_Britva

59 — 29.06.11 — 11:19

почему меня все игнорируют??))

  

chuckk

60 — 29.06.11 — 11:20

(59) Вы хотите об этом поговорить ? ))

  

vasso

61 — 29.06.11 — 11:21

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

  

vasso

62 — 29.06.11 — 11:22

(52) есть ли смысл перенести последовательно  Config, DBSchema, Params или с большой долей вероятности они все битые

Если да, то в какой последовательности?

  

Boris_Britva

63 — 29.06.11 — 11:24

(60) да, доктор, меня это беспокоит))) обычно ко мне прислушиваются, а тут аномалия

  

vasso

64 — 29.06.11 — 11:26

(58) Пробовали откатить конфигурацию с помощью загрузки cf-ника 10 дневной давности. Вроде бы физически это тоже самое что загрузить конфигурацию из хранилища, нет? Проблема в том, что сохранить не получается.

  

Boris_Britva

65 — 29.06.11 — 11:30

(0)1.Восстанови бэкап.

2.Зайди в конфигуратор, создай хранилище конфигурации(Конфигурация->Хранилище конфигурации -> Создать хранилище)

3. В хранилище, через администрирование создаёшь ещё одного пользователя хранилища

4. Заходишь под конфигуратором в сломанную базу

5. Подключаешь к хранилищу(Конфигурация->Хранилище конфигурации -> Подключится к хранилищу) Там указываешь путь илогин с паролем ранее созданный.

6. Конфигурация откатится на состояние бекапа, возможно (!!!, велика вероятность) что поможет

  

АНДР

66 — 29.06.11 — 11:30

А что за архив 10 дневной давности?

Может есть архивы сделанные средствами SQL и журнал логов с той даты цел?

  

Maxus43

67 — 29.06.11 — 11:30

я пропустил может? что CHECKDB скуля дало?

  

Boris_Britva

68 — 29.06.11 — 11:32

(64) по идее нет. советом (54) тпак и не хочешь попробывать воспользоваться??

  

vasso

69 — 29.06.11 — 11:32

(67) крутится до сих пор — база очень неповоротливая (((

  

Boris_Britva

70 — 29.06.11 — 11:33

(+68) не весь пост прочитал, понял, ждёмс

  

zva

71 — 29.06.11 — 11:34

(0) В отладку вообще заходит модуль обычногоуправляемого приложения — ПередНачаломРаботыСистемы или сразу падает?

На сервере отладка вклчена (/debug)?

Смысл отладку на модуль внешнего соединения ставить…

  

Boris_Britva

72 — 29.06.11 — 11:35

а почему такой объём, реально такой объем, или тестирование у вас делается так же как и бэкапы?? 100 гигов это охренеть как много для базы, я работал навод железобетонных шпал, так вот у нас 9 заводов и центральный офис, единая аза занимала 40 гигов, но это РЖД и потоки ИНфы там достаточно серъезные(УПП)

  

Zverek

73 — 29.06.11 — 11:35

v8: Как получить Уникальный идентификатор базы?

возможно проблема в длине УД инфБазы, если даже сф старая не работает

  

Boris_Britva

74 — 29.06.11 — 11:36

(73) причем тут »

тип не определён»??

  

Aprobator

75 — 29.06.11 — 11:37

вот тьфу тьфу — пользуюсь динамическим обновлением и ни разу не влетал. База на скуле. На скуле сделано все согласно рекомендациям 1С прописанным на ИТС, ну и перезапуск сервера 1С предприятия — каждую ночь.

  

zva

76 — 29.06.11 — 11:37

ИМХО, если в описании 14 платформы говорят, что исправили

<<При выполнении некоторых запросов может происходить ошибка вида

Тип неопределен f04256af-e4b4-4d0a-8a65-baaa878d4c6de

и аварийное завершение работы программы.

>>

то сам запрос искать нужно…

  

volsh77n

77 — 29.06.11 — 11:38

(75) 100 гигов обновлять динамически, без бекапа это…

  

ptiz

78 — 29.06.11 — 11:43

(77) Я на этой неделе такое делал (права надо было обновить).

(но бакапы есть)

  

volsh77n

79 — 29.06.11 — 11:44

(78) 1с не рекомендует…

  

volsh77n

80 — 29.06.11 — 11:44

(78) бекапы есть и то хлеб, скульный бекап сделать 10-20 минут делов..

  

Boris_Britva

81 — 29.06.11 — 11:45

У меня такое ощущение, что дело не только в динамическом обновлении, автор так и не ответил почему такая база большая, но судя по размерам, там тупо запущенная база, ошибки копились, 100Гб скорее всего, потому что тестирование и исправление своевременно не делалось

  

ptiz

82 — 29.06.11 — 11:47

(79) Ссылочку можно?

(81) У нас всё сжимается, но тоже до 100 Гб доросли.

  

Boris_Britva

83 — 29.06.11 — 11:49

(82) то есть все сжимается?? свёртку что ли делаете??

  

volsh77n

84 — 29.06.11 — 11:51

http://gilev.blogspot.com/2010/02/1-81.html

Динамическое обновление в 1С:Предприятие 8.1

В 8.1 есть такая функция как динамическое обновление.

Практика показала: ЧТО НЕ НАДО ВООБЩЕ ИСПОЛЬЗОВАТЬ ДИНАМИЧЕСКОЕ ОБНОВЛЕНИЕ!

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

1. Например можно словить:

Ошибка СУБД:

ERROR:  relation «_reference5029» does not exist

2. Если изменилась (или удалилась) функция — будет фатальная ошибка или отсутствие контроля целостности данных.

3. Еще одна неприятная ситуация возникает при некорректной работе с кэшем методанных.

Кэш метаданных расположен в папке <Имя пользователя OS>Local SettingsApplication Data1C1Cv81

В нем необходимо стереть подпапки Config, ConfigSave, DBNameCache, SICache.

В результате легко получить ошибку «Ошибка потока формата».

Примечание.

UUID информационной базы можно посмотреть в файле

C:Documents and Settings<Имя пользователя>Application Data1C1Cv81ibases.v8i.

  

Boris_Britva

85 — 29.06.11 — 11:51

(82) сеть гипермагов у вас??

  

Aprobator

86 — 29.06.11 — 11:54

(84) там дата 10 февраля 2010 года. Релиз платформы уже энное количество раз обновился.

  

ptiz

87 — 29.06.11 — 11:56

(84) Это не официальная позиция. Практика-то известна :)

(85) Да обычный опт (до 5000 накладных в день).

  

rs_trade

88 — 29.06.11 — 12:00

(62) последовательность пофиг. главное все 3 таблицы

  

vasso

89 — 29.06.11 — 12:10

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

  

vasso

90 — 29.06.11 — 12:14

DBCC CHECKDB (‘trade’,REPAIR_REBUILD)

Ошибок не нашел

но и результата  не дал — та же ошибка

Запустил пока REPAIR_ALLOW_DATA_LOSS на копии базы

(не вижу правда особого смысла, но за неимением лучшего варианта)

Объем большой т.к. база от 2007 года, при среднем кол-ве документов  день около 3000(большая часть документов с большим кол-вом движений по регистрам/углубленной аналитикой, большими ТЧ)

Это сеть, но не гипер, а мини (1500 розничных точек)

Это если коротко.

Тестирование и исправление средствами 1С не делалось. Все регламенты на уроне  SQL.

Приступаю к (52) варианту

  

rs_trade

91 — 29.06.11 — 12:21

(90) таблицу Files можно еще почистить

  

vasso

92 — 29.06.11 — 12:23

  

rs_trade

93 — 29.06.11 — 12:26

(92) забей пока.

  

Boris_Britva

94 — 29.06.11 — 12:28

из (0) не совсем понятно, с помощью дебагера получилось найти строчку где вылазиет ошибка

  

Boris_Britva

95 — 29.06.11 — 12:30

(90) так и планируете растить базу, почему свёртку не делаете?? в бекапах храните не свёрнутые варианты и всё, работоспособность возрастёт

  

АНДР

96 — 29.06.11 — 12:37

Попробуйте заменить содержимое таблички ConfigSave данными из Config.

Попробуйте заменить эти таблички на таблички из бекапа + DBSchema

  

zva

97 — 29.06.11 — 12:40

(0) cf в пустую базу нормально заргужается?

  

vasso

98 — 29.06.11 — 12:41

  

rs_trade

99 — 29.06.11 — 12:45

(98) таблички заменили? или в процессе.

  

АНДР

100 — 29.06.11 — 12:48

(98) «Конфигурация» или «конфигурация БД»?

Конфигурация 1С состоит из объектов: Константы, Документы, Регистры и ряда других. У каждого есть свои реквизиты: дата, номер, сумма и т. д. При обращении к переменной, которая не является объектом, либо при обращении к неверному типу объекта будет выходить оповещение, что Значение не является значением объектного типа.

Причины

  • Основная — неверное обращение к объекту конфигурации.
  • Дополнительная — обновление релиза или платформы и сохраненные настройки пользователя.

Неверное обращение к объекту

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

Возможно, она уже исправлена

либо есть вариант обхода ошибки до исправления в последующем обновлении.

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

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

Создадим запрос по регистру накопления Взаиморасчеты с сотрудниками с некоторыми полями из него.

В запросе в поле Физическое лицо указали реквизит Код, обозначив при этом в представлении, что это данные по физическому лицу. Далее, выгрузив запрос в таблицу значений, обработаем полученные данные, при этом попытаемся сообщить, какое физическое лицо в данный момент обрабатывается.

В результате выполнения цикла получим ошибку Значение не является значением объектного типа (Наименование).

Окно сообщения говорит о том, что происходит попытка получить значения, которых нет в объекте. В данном примере из информации о коде пытаемся получить наименование физического лица. Корректнее было бы в запросе получать данные о физическом лице и дополнительно о наименовании физического лица, а в цикле — получать это поле.

Следующий пример ошибки — обратимся к функции и передадим в нее параметры несоответствующего типа. У функции ОбработатьДанные два параметра: Объект и ФизическоеЛицо. Вместо передачи элемента типа справочник Физические лица передан параметр Ложь.

При выполнении кода будет выдана ошибка.

Происходит это из-за того, что функция пытается получить данные ИНН из типа данных Булево. Для исправления достаточно правильно передать параметр.

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

В данном примере необходимо либо добавлять проверку при получении даты для _Объект на значение Неопределено, либо изменить условие, которое приводит к ошибке.

Сохраненные настройки пользователя

Ошибка Значение не является значением объектного типа может возникать после обновления из-за несоответствия настроек пользователя и настроек, предусмотренных изменениями конфигурации. Например, у части пользователей все работает в штатном режиме, а у других — перестали открываться списки документов или не формируются отчеты, которые до обновления работали без нареканий.

Скорее всего, в следующем обновлении разработчики устранят данную проблему, а пока можно попробовать очистить настройки конкретного пользователя. Для начала следует сделать архив базы. Далее в развернутой копии выполнить следующие действия:

  • зайти в раздел Администрирование;
  • открыть в панели действий пункт Настройки пользователей;
  • выбрав нужного пользователя, очистить его настройки.

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

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

См. также:

  • Исправление технических ошибок при работе с 1С:Бухгалтерия
  • Не запускается 1С
  • Идентификация пользователя не выполнена
  • Несоответствие типов
  • Итератор для значения не определен
  • Неоднозначное поле в запросе

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

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

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Программное обеспечение 1С:Предприятия значительно упрощает работу разного рода предприятий в оформлении и создании цифровых документов. Внутри продукта реализован специальный язык конфигурирования документов. С его помощью пользователи могут создавать базы данных, торговые формы и другие программные модули. Особенностью языка является команды и операторы на русском языке. При создании документов многие сталкиваются с ошибкой — «Значение не является значением объектного типа (Имя)». В этой статье мы определим её причину и научимся устранять этот сбой.Ошибка значения объектного типа

Содержание

  1. Причина ошибки объектного типа в 1С
  2. Чистим кэш в программе 1С:Предприятие
  3. Тестирование базы 1С.Предприятие в версии 8.3
  4. Устраняем ошибку при формировании отчета

Распространенными версиями программы на сегодняшний день являются 1С:Предприятия 8.2, 8.3. Именно в них, по словам пользователей, появляется ошибка с типами объектов. Во всех случаях причиной является недостаточный опыт того, кто пытается написать программу. Другими словами — ошибку вызывает неверно написанный код. Но в некоторых случаях проблема может появляться по другим причинам. Рассмотрим всевозможные варианты устранения ошибки в 1С:Предприятия.

Полезно знать: ошибка в 1С 7.7 «Порядок сортировки, установленный для баз данных, отличается от системного.

Чистим кэш в программе 1С:Предприятие

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

Если в кэш будет внесено какое-нибудь неверное значение, то чтобы его изменить, нужно только удалить существующее. Данные в этом контейнере также могут прийти в негодность по некоторым другим причинам. Например, при внезапном отключении питания компьютера во время работы с программой. Ошибки также могут вызывать неполадки с жестким диском компьютера. Итак, чтобы найти папки кэша, нужно открыть следующие директории:

  • Версия 2 — %userprofile%AppDataLocal1C1Cv82; %userprofile%AppDataRoaming1C1Cv82;
  • Версия 8 — %userprofile%AppDataRoaming1C1Cv8; %userprofile%AppDataLocal1C1Cv8.Окно

Их можно найти как вручную на диске, который вы указали при установке, так и при помощи окна ввода команд в Windows. Чтобы запустить и открыть временные файлы 1C:

  1. Нажмите две клавиши вместе WIN+R;
  2. Появится строка ввода внизу в левой части экрана. Скопируйте одну из строк выше и вставьте в пустое поле. Проследите, чтобы каждая команда была написана только латинскими буквами;
  3. Нажмите ENTER, и система покажет вам нужную папку;
  4. В каждой папке нужно удалить всё содержимое, затем закрыть окна и запустить программу.

Читайте также: ошибка при выполнении запроса POST к ресурсу/e1cib/logForm.

Тестирование базы 1С.Предприятие в версии 8.3

В программном продукте 1С:Предприятие 8.3 есть специальная утилита, которая позволяет проверять базу данных на ошибки и автоматически исправлять их. Удобный инструмент для всех случаев. Вам стоит знать, где она находится и как её использовать даже в том случае, если нашей беде она не поможет. Для более эффективного применения наладчика вам нужно знать его разделы. Каждый нужно использовать в определенном случае.

  • Тестирование базы данных на ошибки — для устранения нашей ошибки — значение не является значением объектного типа 1С — этот пункт необходимо использовать в первую очередь. Он позволяет определять и устранять ошибки при создании новых объектов и таблиц соответствий базы;
  • Проверка ссылок базы данных — этот модуль нужно использовать при частых ошибках «Объект не найден». Он проверяет правильность пути к объекту и исправляет его в случае надобности. Модуль можно настроить, выбирая параметры: «Не изменять», «Создавать объекты», «Удалять» и так далее;
  • Переоформление таблиц БД — при запуске этого пункт, делается копия базы данных и заново создаются таблицы с данными. Процесс занимает длительно время;
  • Переиндексация таблиц БД — в базе данных есть основная таблица индексирования. Для более быстрой работы к основной таблице добавляются вспомогательные. В них данные сортируются по определенным параметрам, которые заданы в основной таблице. Утилита сканирует данные индексного файла и таблиц на ошибки;
  • Сжатие данных в БД — когда вы удаляете какой-нибудь объект из таблицы или в конфигурации, он исчезает только визуально. Удаленные объекты остаются в БД, хотя и не отображаются нигде. Чтобы уменьшить объем всего документа, рекомендуется перед сохранением использовать этот модуль;
  • Проверка актуальных данных — чтобы быстро отображать расчеты БД, в 1С есть специальный файл, в котором программа уже произвела необходимые расчеты для отображения итогового результата. Если с данным файлом пользователь нашел несоответствия или искаженные данные, нужно запустить этот пункт для проверки.

Эти разделы утилиты позволят вам исправить многие ошибки, которые встречаются при работе в 1С:Предприятия. Запустить их очень просто:

  1. Откройте программу;
  2. Выберите на панели инструментов вкладку «Администрирование»;
  3. Выберите из списка пункт «Тестирование и исправление»; Конфигуратор 1С
    Выберите пункт «Тестирование и исправление»
  4. Определитесь с разделом и запустите сканирование.

Устраняем ошибку при формировании отчета

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

  1. В стандартных конфигурациях управляемых форм существует настройка, которая выводит подразделения разделов по иерархии. Чтобы активировать её, необходимо открыть пункт «Настройки». Найти его можно вверху на панели инструментов;Настройки программы 1С
  2. Среди перечня настроек в первом столбце выберите пункт «Дополнительные настройки»;
  3. Найдите пункт «Выводить полную иерархию…» и поставьте на нём галочку;Опция иерархии подразделений
  4. Просмотрите другие пункты настроек, возможно, они смогут пригодиться;
  5. Сохраните созданные настройки программы.

Необходимо знать, что каждое значение переменной должно иметь свои реквизиты. Если оставить одну из значений переменных без параметра, программа будет выдавать ошибку. Сбой возникает по той причине, что в каком-то участке кода подобный объект содержит значение, в котором нет никаких полей. Иначе говоря, оно не определено. Когда этот код будет запущен, обработчик попытается прочитать переменную и выдаст ошибку о неверном типе данных.

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

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

Довольно часто начинающие 1С разработчики сталкиваются с ошибками, которых достаточно легко избежать. Ниже мы рассмотрим топ 11 ошибок и способы их исправления. Также доступна видеоверсия статьи

Содержание

Поле объекта не обнаружено

1С ошибка Поле объекта не обнаружено

Существует множество статей, которые описывают возможные причины возникновения в 1С ошибки “Поле объекта не обнаружено”. Порой это связывают с обновлением платформы, обновлением типового релиза, или с какими-то другими причинами.

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

Такое сообщение платформа выдает, когда пытается обратиться к свойству объекта языка, которого у данного объекта нет. Не важно, что это за объект – документ, справочник, таблица значений , или сообщение пользователю.

  • Удалили табличную часть, к которой обращаемся в коде?
  • Переименовали реквизит, а в коде не исправили?
  • Заменили значение со ссылки на неопределено?

Вуаля – платформа выдаст ошибку “Поле объекта не обнаружено”!

Как исправить? Исходя из природы ошибки – переименовать реквизит на нужное имя, отредактировать код, или использовать правильные обращения к стандартным свойствам объекта.

Например, у объекта “СообщениеПользователю” нет свойства “Таблица”, и следующий код приведет к ошибке:

Сообщение = Новый СообщениеПользователю;
Сообщение.Таблица = “Ошибка”;

Индекс находится за границами массива

1С ошибка Индекс находится за пределами массива

Что означает такое сообщение системы? Как правило, с данной ошибкой разработчик сталкивается при некорректной работе с коллекциями. Самые частые случаи появления ошибки “Индекс находится за границами массива”.

  • Использование при обходе коллекции количества элементов вместо индекса. Индексы начинаются с нуля, а количество элементов – с единицы. Поэтому следующий код гарантированно приведет к ошибке: Массив[Массив.Количество()]
  • Последствия удаления элементов из коллекции, очистки коллекции или замены коллекции на пустую
  • Ошибочное увеличение счетчика в цикле “Для”

 Как исправить? Для удаления элементов из коллекции по условию – использовать обратный цикл. Добавлять условие на соответствие счетчика цикла и индекса массива. Не увеличивать счетчик внутри кода цикла Для … Цикл … КонецЦикла

Обращение к процедуре как к функции

ОШибка

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

Данная ошибка имеет две вариации – если используется стандартная процедура из методов какого-нибудь объекта, то фраза будет звучать “Обращение к процедуре объекта как к функции”. Если же использовать процедуру, объявленную в коде, то текст ошибки будет “Обращение к процедуре как к функции”.
При этом ошибка использования процедуры объекта является ошибкой времени выполнения – т.е. на этапе сохранения и проверки конфигурации платформа эту ошибку не обнаружит.

А вот неправильное использование процедуры синтаксическая проверка (Ctrl + F7) успешно обнаруживает, и не даст сохранить конфигурацию или внешнюю обработку/отчет, пока ошибка не будет устранена.

Рассмотрим два примера:

1. Воспроизведем ошибку “Обращение к процедуре как к функции”. При этом платформа не даст сохранить изменения, т.к. не проходит синтакс-контроль.

2. Воспроизведем ошибку “Обращение к процедуре объекта как к функции”. Здесь мы неверно используем метод объекта массива “Добавить”, который является процедурой.

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

Процедура не может возвращать значение

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

В процедуре можно написать ключевое слово “Возврат” без параметров. Это будет означать выход из процедуры.

Следующий код является ошибочным, т.к. в теле процедуры Возврат используется с параметром:

Процедура ПроцедураНеМожетВозвращатьЗначение(Команда)
Возврат "Ошибка";
КонецПроцедуры

Как исправить? Платформа сама подсказывает, в каком месте кода ошибка. Нужно изменить текст модуля – либо удалить параметр у ключевого слова Возврат, либо убрать его вовсе, либо изменить процедуру на функцию – зависит от того, какая логика у вашей процедуры, и как вы предполагаете ее использовать.

Переменная не определена

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

  • Опечатка в имени переменной
  • Обращение к переменной, которая нигде в области видимости не объявлена (неявной инициализацией с присвоением значения, явным образом с использованием ключевого слова “Перем”, или передана в качестве параметра)
  • Написание на клиенте серверного кода. Например, обращение к менеджеру справочников “Справочники”, и т.п. Клиентская часть приложения “не видит ” серверные объекты языка
  • Также ошибка может появиться, если ранее код использовался в режиме толстого клиента, но после был запущен в тонком клиенте.

Как исправить?

Внимательно следить за правильностью набранного кода, своевременно объявлять переменные или передавать их в качестве параметров. Писать серверный код только в серверных модулях, а также использовать соответствующие инструкции препроцессора, например “&НаСервере”.

Значение не является значением объектного типа

Ошибка “Значение не является значением объектного типа” может возникнуть при неверном обращении к объекту языка. Объектный тип – это такие объекты языка, которые содержат в себе другие объекты – свойства, реквизиты и т.п. Эти свойства доступны через точку, например “Объект.СвойствоЭтогоОбъекта”

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

Разберем более сложный пример:

&НаСервере
Процедура ЗначениеНеЯвляетсяЗначениемОбъектногоТипаНаСервере(Справочники = Ложь)
Сообщить(Справочники.Сотрудники.ПустаяСсылка());
КонецПроцедуры

Ошибка может быть “плавающей”. Если вместо параметра по умолчанию “Справочники = Ложь” будет передан менеджер справочников, то ошибки возникать не будет. А если вызвать процедуру без параметров, то будет использоваться параметр по умолчанию с типом Булево, что и приведет к ошибке.

Чаще всего чтобы исправить ошибку, нужно в отладчике посмотреть, какой тип значения используется. Можно внести изменения в код, чтобы обеспечить корректное поведение (например, в запросе вместо наименования товара выбрать ссылку, и в коде через точку уже обращаться к свойствам ссылки, а не текстового наименования). А можно добавить проверку на нужный тип значения. Т.е. – если значение того типа, который мы ожидаем – выполняем код. Иначе – не выполняем.

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

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

Обнаружены ошибки в 1С Синтаксическая ошибка

В языке 1С у разных объектов (запросов, справочников, табличных документов и др.) есть предопределенные методы, предусмотренные платформой. Обращение к этим методам требует соблюдения порядка и параметров, правильного синтаксиса и соблюдения условий использования. Например, при чтении табличного документа из файла он не должен быть открыт в другой программе, при подключении к http-соединению оно должно быть доступно, и т.п.

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

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

  1. Записать
  2. Прочитать
  3. Выполнить
  4. Создать
  5. ПроверитьВывод

Разберем эту ошибку на примере метода Выполнить объекта Запрос:

Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1 1 ГДЕ ИСТИНА И");
Запрос.Выполнить();

В тексте запроса допущена ошибка –  после первого условия “ГДЕ ИСТИНА” указан оператор И, но после него нет еще одного условия. В результате при попытке выполнения запроса, платформа вернет ошибку.

Для исправления ошибки зачастую достаточно внимательно использовать методы, при необходимости уточнять порядок, количество и тип параметров – это можно сделать в справке или синтакс-помощнике (встать курсором на имя метода в коде, и нажать сочетание клавиш Ctrl+F1). В случае запроса – нужно передавать синтаксически корректный текст запроса; в случае проверки вывода на печать – в системе должен быть установлен принтер; в случае подключения к почте – должны быть корректно указаны логин и пароль, и т.п.

Тип не может быть выбран в запросе в 1С 8.3 (8.2)

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

С такой ошибкой начинающие разработчики (да и не только начинающие 😉 ) сталкиваются чаще всего, при чтении запросом данных из таблиц значений, либо из регистров сведений. Все дело в том, что запросы поддерживают далеко не все типы значений. Так, например, нельзя запросом выбрать тип Картинка, ХранилищеЗначений, Шрифт, и многие другие типы, которые не относятся к примитивным или ссылочным типам значений.

Так, если ресурс регистра сведений имеет тип ХранилищеЗначений, выбрать его запросом будет нельзя. Также, если в таблицу значений поместить значения не подходящих типов, а после передать эту таблицу в качестве параметра-источника данных, выполнение запроса также приведет к ошибке “Тип не может быть выбран в запросе”.

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

Неверно:

//ТЗОшибочныйТип.Колонки.Добавить("Контрагент");

Верно:

//ТЗОшибочныйТип.Колонки.Добавить("Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));

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

Использование в 1С модальных окон в данном режиме запрещено

Ошибка Использование в 1С модальных окон в данном режиме запрещено​

Платформа будет выдавать такое сообщение, если в коде используются методы, приводящие к открытию модальных окон. Модальные окна – это окна, которые при открытии блокируют весь остальной интерфейс. В 1С есть несколько модальных методов – например – “Вопрос”, “ОткрытьЗначение”, “Предупреждение”. Кроме того, в коде может использоваться модальный синтаксис открытия форм: “ОткрытьМодально()”

Если в свойствах конфигурации выбран режим использования модальности “Не использовать”, то выполнение модальных методов будет приводить к этой ошибке “Использование в 1С модальных окон в данном режиме запрещено”.

Для устранения ошибки можно пойти несколькими путями. Как водится, один – быстрый, другой – правильный 🙂

Быстрый способ – переключить режим использования модальности в положение “Использовать”.

Более правильный способ – использовать в коде немодальные вызовы методов. Например, у метода “Вопрос” есть немодальный аналог  – “ПоказатьВопрос”, у метода “Предупреждение” – “ПоказатьПредупреждение”, и т.п. Чаще всего об этих методах дополнительно указано в синтакс-помощнике и справке.

Кроме того, в последних версиях платформы появились асинхронные методы – “ВопросАсинх”, “ПредупреждениеАсинх” и др. Появление этих методов позволяет писать более простой и понятный асинхронный код, и направлено в первую очередь, на более полноценную поддержку браузерами и работу в веб-клиенте.

1С 8.3 и 8.2: Запись с такими ключевыми полями существует!

Данная ошибка появляется при некорректной записи в регистр сведений. Чаще всего с этой ошибкой сталкиваются начинающие разработчики, не до конца понимающие механизмы работы с ключевыми полями (измерениями).

Суть ошибки следующая – регистр сведений позволяет записать запись (строку таблицы) с уникальным набором ключевых полей – а для периодических регистров также и поля Период. Если следующая запись полностью повторяет значение ключевых полей, но осуществляется методом Записать с параметром Замещать = Истина, то запись в таблице регистра просто заменится на идентичную.

Однако если поместить две абсолютно одинаковые записи в набор записей, и попытаться его записать – платформа выдаст ошибку. Еще один распространенный случай, когда 1С сообщает “Запись с такими ключевыми полями существует” – это запись в периодический регистр сведений с периодичностью от “День” и выше, подчиненный регистратору.

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

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

Поле объекта недоступно для записи в 1С

Ошибка Поле объекта недоступно для записи в 1С​

Чаще всего начинающие программисты 1С сталкиваются с этой ошибкой в двух ситуациях.

Первый случай – это попытка редактирования системных полей, недоступных для записи. Например, в модуле формы сама форма будет содержаться в объекте ЭтаФорма. И попытка присвоить этому реквизиту любое значение приведет к ошибке “Поле объекта недоступно для записи”.

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

Элемент = Справочники.Сотрудники.НайтиПоКоду("12345");
Элемент.Наименование = "Новое наименование";

Исполнение данного кода приведет к ошибке, т.к. поля ссылки доступны только для чтения, а метод НайтиПоКоду вернет именно ссылку. Чтобы можно было внести изменения, следует из ссылки получить сам объект – используя соответствующий метод ПолучитьОбъект().

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

Ссылка на обработку

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

Заключение

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

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

О чем говорит ошибка значения 1С в ячейках?

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

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

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

Специалисты компании «АйТи-Консалтинг» обладают большим опытом работы в сфере настроек и обслуживания приложений «1С: Предприятие 8.3». Вы сможете получить ответы на самые распространенные вопросы по значениям в 1С.

Текст ошибки может звучать по-разному, например:

  • Поле объекта не обнаружено (ХХХХХХ);
  • Значение не является значением объектного типа (ХХХХХХ);
  • Метод объекта не обнаружен (ХХХХХХ);
  • Во время сохранения файла возникла ошибка.

Такие ошибки чаще всего возникают при некорректной работе базы 1С.

Для решения воспользуйтесь следующим алгоритмом:

  • Очистите кэш платформы 1С. После запуска 1С повторите действия.
  • Проверьте права пользователя в 1С. После запуска 1С повторите действия.
  • Отключите (при наличии) внешний модуль документооборота.

Для управляемых приложений:

Сделайте копию информационной базы  и перейдите в Отчеты → Регламентированные отчеты → Настройки → Прочие настройки обмена и в этом разделе уберите внешний модуль.  Перезапустите 1С.  После запуска 1С повторите действия.

Для неуправляемых приложений:

Сделайте копию базы и перейдите в Отчеты → Регламентированные отчеты → Настройки → Для настройки параметров документооборота нажмите здесь (внизу)→ выбрать пункт Использовать внешний модуль. Перезапустите 1С. После запуска 1С повторите действия.

  • Сделайте диагностику 1С-отчетности, отправьте отчет по диагностике и сообщите номер обращения специалисту технической поддержки 1С-Отчетность.
  • Запустите Конфигуратор 1С. Выберите пункт Отладка → Начать отладку. После запуска 1С повторите действия.
  • Удостоверьтесь, что конфигурация находится на полной поддержке 1С, т.е. в нее не были внесены изменения и она соответствует конфигурации поставщика.

Запустите Конфигуратор 1С. Если конфигурация закрыта, то необходимо ее открыть: Конфигурация → Открыть конфигурацию. Слева в меню напротив названия конфигурации должен быть значок замка – объект поставщика не редактируется.

  • Попробуйте запустить 1С в тонком клиенте, для этого после нажатия на ярлык 1С выберите базу, затем нажмите Изменить → Далее → Основной режим запуска: выберите пункт Тонкий клиент → Готово. Запустите 1С.
  • Измените переменные среды. Рекомендуем обратиться к системному администратору для выполнения данных действий.
  • Проверьте кодировку в операционной системе Windows по инструкции смена кодировки. Рекомендуем обратиться к системному администратору для выполнения данных действий.

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

Не удалось выполнить обновление 1С: значение не является значением объектного типа (Код)

oshibka-pri-obnovlenii-1s-znachenie-ne-yavlyaetsya-znacheniem-obektnogo-tipa

Недавно обновлял на одном из рабочих компьютеров программу 1С:Предприятие. После запуска программы в процессе обновления возникла ошибка: “Не удалось выполнить обновление. При обновлении версии программы возникла ошибка: Значение не является значением объектного типа (Код).” Перезапуск программы не помог – окно с ошибкой появилось снова:Не удалось выполнить обновление 1С

Решить данную проблему мне помогло встроенное в 1С:Предприятие средство: Тестирование и исправление информационной базы.

1. Итак, первым делом закройте программу , и сделайте на всякий случай копию базы данных. Для этого зайдите в папку, в которой хранится база данных, и скопируйте куда-нибудь файл 1Cv8.1CD:где лежит база данных 1с

2. Теперь снова запустите программу 1С:Предприятие. В стартовом окне перейдите в “Конфигуратор”:конфигуратор 1С

3. Затем в строке меню зайдите во вкладку “Администрирование” – “Тестирование и исправление”:Тестирование базы 1с

4. В открывшемся окне проставьте галочки и маркеры также, как на моем скриншоте, и затем нажмите кнопку “Выполнить”:тестирование и исправление 1С

5. По окончанию процесса тестирования снизу отобразится информация с результатами данного тестирования:Значение не является значением объектного типа 1СЗакрываем программу . Затем запускаем ее снова. После запуска ошибка: “Не удалось выполнить обновление. Значение не является значением объектного типа” не должна повториться.

Метки: 1С

Обнаружено нарушение целостности системы 1с и база закрывается    оглавление   

2018-10-25T11:51:51+00:00

Вопрос от читателя:

БП редакция 3.0.65.80.
После обновления платформы до 8.3.13.1513 перестали открываться «Счета покупателям» с сообщением «Значение не является значением объектного типа (элементы)».

Ответ:

По аналогии вот с этой статьей нужно провести выборочную очистку настроек пользователя:

  • Зайти в раздел Администрирование.
  • Открыть в панели действий Настройки пользователей.
  • Выборочно или полностью очистить настройки пользователя.

Если делать выборочную очистку настроек, то скорее всего достаточно будет очистить настройки только проблемного элемента (в данном случае «Счет покупателю»).

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Владимир Милькин

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Обнаружено нарушение целостности системы 1с и база закрывается    оглавление   
Тип не определен (Запрос) Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент) ☑ 0

Mikhail Volkov

23.06.22

13:05

Таких тем здесь много, ответ понятен, нельзя на клиенте использовать: Запрос = Новый Запрос; Но вопрос не в этом. Обычно работаю с конфигурациями ОФ: Альфа-Авто, КА1 (УПП)… Везде использую общий модуль мвДоработки с галочками: Сервер, Клиент (обычное приложение), Внешнее соединение (в Альфа-Авто не использую), Вызов сервера. Когда в конфигурацию надо внести более 2-х строк, то пишу их в этот модуль в виде функции, а вызов этой функции вставляю в то место, где нужно внести изменение. Когда поддержка КА1 закончилась, сделал базу на КА2 (еще вроде на КА2.1), но в ней пока не работаем, обновляем КА1 УПП. В КА2 тоже сделал общий модуль мвДоработки с галочками: Клиент, Сервер, Внешнее соединение. В нем написал несколько функций (в УФ я начинающий). Среди них есть:

// Возвращает Истина, если у номенклатуры единственное наименование

//

Функция ЕдинственноеНаименованиеНоменклатуры(Номенклатура) Экспорт

    Запрос = Новый Запрос;

    Запрос.Текст = »

    |ВЫБРАТЬ

    |    Номенклатура.Ссылка КАК Ссылка

    |ИЗ

    |    Справочник.Номенклатура КАК Номенклатура

    |ГДЕ

    |    Номенклатура.Наименование = &Наименование»;

    Запрос.УстановитьПараметр(«Наименование», Номенклатура.Наименование);

    Выборка = Запрос.Выполнить().Выбрать();

    Счетчик = 0;

    Пока Выборка.Следующий() Цикл

        Если Счетчик > 0 Тогда

            Возврат Ложь;

        КонецЕсли;

        Счетчик = Счетчик + 1;

    КонецЦикла;

    Возврат Истина;

КонецФункции

// Возвращает полное наименование ключа аналитики номенклатуры

// без дублей по наименованию

Функция ПолучитьПолноеНаименованиеКлючаАналитикиНоменклатуры(МенеджерЗаписи) Экспорт

    Попытка

        НаименованиеСклада = СокрЛП(МенеджерЗаписи.МестоХранения);

    Исключение

        НаименованиеСклада = СокрЛП(МенеджерЗаписи.Склад);

    КонецПопытки;

    Наименование = СокрЛП(МенеджерЗаписи.Номенклатура) + ?(ЕдинственноеНаименованиеНоменклатуры(МенеджерЗаписи.Номенклатура), «», «, »

        + ?(ПустаяСтрока(МенеджерЗаписи.Номенклатура.Артикул), СокрЛП(МенеджерЗаписи.Номенклатура.Код), СокрЛП(МенеджерЗаписи.Номенклатура.Артикул))) + «; »

        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + «; «, «»)

        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + «; «, «»)

        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + «; «, «»)

        + ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + «; «, «»)

        + СокрНаименованиеСклада(НаименованиеСклада);

    Если СтрДлина(Наименование) > 100 Тогда

        Наименование = Лев(СокрЛП(МенеджерЗаписи.Номенклатура), СтрДлина(СокрЛП(МенеджерЗаписи.Номенклатура)) — СтрДлина(Наименование) + 97) + «…»

            + ?(ЕдинственноеНаименованиеНоменклатуры(МенеджерЗаписи.Номенклатура), «», «, »

            + ?(ПустаяСтрока(МенеджерЗаписи.Номенклатура.Артикул), СокрЛП(МенеджерЗаписи.Номенклатура.Код), СокрЛП(МенеджерЗаписи.Номенклатура.Артикул))) + «; »

            + ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + «; «, «»)

            + ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + «; «, «»)

            + ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + «; «, «»)

            + ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + «; «, «»)

            + СокрНаименованиеСклада(НаименованиеСклада);

    КонецЕсли;

    Возврат Наименование;

КонецФункции

которая вызывается из РС АналитикаУчетаНоменклатуры:

Функция ПолучитьПолноеНаименованиеКлючаАналитики(МенеджерЗаписи)

    Возврат мвДоработки.ПолучитьПолноеНаименованиеКлючаАналитикиНоменклатуры(МенеджерЗаписи);    //+МВ 12.05.2019

//    Возврат СокрЛП(МенеджерЗаписи.Номенклатура) + «; »

//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + «; «, «»)

//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + «; «, «»)

//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + «; «, «»)

//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + «; «, «»)

//        + СокрЛП(МенеджерЗаписи.МестоХранения);

КонецФункции

В данном случае галочка Клиент на мвДоработки не нужна, но можно ли ее убрать? Наверное это зависит от других функций модуля. Как навскидку определить: может ли функция выполняться только на клиенте? Вопрос наверное глупый, но в УФ я начинающий. Убрал галочку Клинт — ошибка: Тип не определен (Запрос) исчезла. Потом вернул ее, сохранил конфигурацию, ошибка не появилась!? Раньше она появлялась, до обновления на 2.5.8.221.

1

Волшебник

модератор

23.06.22

13:08

в тонком клиенте нет запросов. Управление надо передать на сервер

2

youalex

23.06.22

13:19

Возврат Выборка.Количество() <= 1

3

TormozIT

23.06.22

13:39

Инструкциями препроцессора (#Если Не ТонкийКлиент И Не ВебКлиент И Не МобильныйКлиент Тогда) можно заэкранировать фрагменты модуля, если не хочется делать отдельный модуль.

4

Mikhail Volkov

23.06.22

14:31

(1) На счет запросов понятно — клиент их не может делать. Но вопрос: что может клиент, но не может сервер?

5

lodger

23.06.22

14:33

(4)

ТекстовыйДокумент (TextDocument)

Показать (Show)

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.

6

arsik

23.06.22

14:42

(4) В настройках синтаксис помощника

https://i.imgur.com/W1Nf3eh.png

7

timurhv

23.06.22

14:56

(4) чтобы не было каши в названиях модулей и галочках

https://its.1c.ru/db/v8std#content:469:hdoc

8

Mikhail Volkov

23.06.22

16:00

(5) ТекстовыйДокумент() — этого точно нет в общем модуле мвДоработки.

(6), (7) Спс. Значит можно снять галочку Клиент с мвДоработки.

9

Mikhail Volkov

23.06.22

16:07

Эта тему можно закрыть. Может кто поможет с вопросом КД2: Сравнение и объединение правил обмена а то он не по теме.

10

Mikhail Volkov

28.07.22

10:48

Рано еще зарывать. Раньше УПП работала 8.3.10, как и все базы, Альфа-Авто выше не работала. Теперь решил перевести на 8.3.19.1522 (установлена для КА2), знаю что Com-обмены могут работать на разных платформах, а вот OLE — не знаю? При загрузки Выписки из УПП выскочила ошибка Тип не определен Запрос = ОбъектКА.NewObject(«Запрос»); а затем: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса. Как убрать ошибку 1С «-2147221005(0x800401F3): Недопустимая строка с указанием класса» нашел статью: https://zen.yandex.ru/media/nastroyka1c/kak-ubrat-oshibku-1s-21472210050x800401f3-nedopustimaia-stroka-s-ukazaniem-klassa-5e56042f5c1f4e2533321a22 и ужаснулся: не уже ли так, больше никак?

11

lubitelxml

28.07.22

10:52

(10) «и ужаснулся: не уже ли так, больше никак?» — уже давно так, ничего сложного там нет

12

rudnitskij

28.07.22

11:12

(10) я больше ужаснулся, когда увидел, как зверски слово «неужели» разорвали на три части

13

lodger

28.07.22

11:22

(12) разорвало в клочья.

14

DayDreamer

28.07.22

11:52

(10)  «знаю что Com-обмены могут работать на разных платформах», можете поделиться ссылкой на описание, как это организовать?

15

Aleksey

28.07.22

12:09

16

Mikhail Volkov

28.07.22

15:25

(11) Давно, но так-то что-то настраивал в службе компонентов Службы компонентов: возможно ли создать обертку OLE соединения V83.Application Что-то создавал там, но сейчас найти не могу где? Не давно обновил высокую платформу, может там что перенастроить нужно? Но где ранее сделанные настройки?

(15) самое неприятное: «Ну и самое главное: не забываем, что работать это будет только при запуске 1С с административными правами.» — а обычным пользователям как работать!?

17

Mikhail Volkov

29.07.22

08:28

Нашел, последняя была 8.3.16.1959, сейчас 8.3.19.1522 https://ibb.co/ZHk8XsH Как исправить? Менять цифры в наименовании наверное бесполезно.

18

TormozIT

29.07.22

10:05

19

Mikhail Volkov

29.07.22

10:41

Вроде сделал по инструкции (10). Не знаю как перезапустить службу компонентов?

(18) Что за «Управление СОМ классами 1С (ИР)» — где ее взять?

20

TormozIT

29.07.22

11:38

(19) ИР — Инструменты разработчика Tormozit для 1С

http://devtool1c.ucoz.ru/

21

Mikhail Volkov

30.07.22

08:49

(20) Скачал ИНСТРУМЕНТЫ РАЗРАБОТЧИКА ПОРТАТИВНЫЙ 1С 8.2+ V6.37.1P, как его запустить?

(19) Ночью перезагрузил сервер, похоже ничего не изменилось.

22

TormozIT

30.07.22

09:45

23

MrKartez

30.07.22

10:10

Капец, деректив не знаешь, функцию СтрШаблон видимо тоже(

«Но вопрос: что может клиент, но не может сервер?» В синтакспомощнике забанен походу)

24

Hans

30.07.22

10:14

Что может клиент и не может сервер —  много чего. В основном интерактивная работа —  формы, диалоги.

А еще сервер много чего может чего не может клиент. Новичков в УФ обычно начинает бомбить от того, что на клиенте нельзя использовать таблицу значений.

25

СеменовСемен

30.07.22

10:29

(24) зачем было запрещать таблицу на клиенте вообще не понятно. Тем более что через хаки ее можно там получить

26

Кура-Цеце

30.07.22

11:06

(25) > через хаки

Ну давай, получи её в веб-клиенте. Через хаки.

27

Hans

30.07.22

11:07

Чо за хаки?

28

СеменовСемен

30.07.22

11:19

(26) уж в веб клиенте на жс реализовать ничего не мешало

29

СеменовСемен

30.07.22

11:19

(27) через внешнюю компоненту

30

Кура-Цеце

30.07.22

11:45

(28) >  ничего не мешало

Ну, то есть тема с хаками закрывается и начинается традиционное «да я сам жаваскрипт знаю, там все просто».

31

СеменовСемен

30.07.22

11:46

(30) ничего не мешало, просто не сделали.
Почему? Это только внутри 1с знают

32

Mikhail Volkov

30.07.22

11:55

У текущего пользователя ИБ включен флажок «Защита от опасных действий». Для корректной работы инструментов его рекомендуется выключить!

Как это сделать?

33

СеменовСемен

30.07.22

12:21

Эта галка только в конфигураторе

34

Hans

30.07.22

12:24

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

35

Mikhail Volkov

30.07.22

12:33

(33),(34) Обычный реквизит? — найти не могу.

36

СеменовСемен

30.07.22

12:33

Пользователи это не справочник

37

Mikhail Volkov

30.07.22

12:36

(36) Как так, не только?

38

Mikhail Volkov

30.07.22

13:07

Где еще?

39

Mikhail Volkov

30.07.22

14:00

(34) у расширения? А если его не использую…

40

Hans

30.07.22

15:42

(39) если не используешь, значит это тебе не надо.

41

Hans

30.07.22

15:42

Пользователи Информационной базы. В конфигураторе.

42

Mikhail Volkov

30.07.22

16:22

(40) Не понял.

43

Hans

30.07.22

17:08

Если нет расширений значит это ограничениев расширении не работает. Остается только пользователь.

44

Mikhail Volkov

31.07.22

07:07

(43) В справочнике Пользователи, или где он?

45

Mikhail Volkov

31.07.22

07:33

Почему в службе компонентов в свойствах V83COMConnector_8_3_19_1522 не вижу версию comcntr.dll (пункт 9 инструкции (10)). Почему в имени V83COMConnector_ в написании версии не могу использовать точки вместо подчеркиваний 8_3_19_1522?

46

Mikhail Volkov

31.07.22

08:25

D свойствах V83COMConnector_8_3_19_1522 на вкладке «Удостоверение» обязательно указывать пользователь/пароль? Если Да, то какого?

47

Hans

31.07.22

08:28

48

Mikhail Volkov

31.07.22

09:35

(47) Администрирование/Пользователи

49

Mikhail Volkov

31.07.22

09:52

Но там не стоит «защита от опасных действий» https://ibb.co/MhcBtGW .

50

Mikhail Volkov

01.08.22

06:49

Вернемся к нашей ошибке: -2147221005(0x800401F3): Недопустимая строка с указанием класса — как ее исправить?

51

TormozIT

01.08.22

07:29

Сумел открыть инструмент (18) по подсказке (22) ?

52

Мимохожий Однако

01.08.22

07:39

(50) Используй для начала 32-разрядную платформу

53

Mikhail Volkov

01.08.22

08:06

(52) НЕ хотелось бы…

54

Мимохожий Однако

01.08.22

08:07

(53) Начни с малого. Возможно, натолкнёт на решение большего.

55

Mikhail Volkov

01.08.22

08:14

(54) Платформа 8.3.19.1522 у меня стоит 2-й платформой на сервере (на других портах) не хотелось бы ее трогать.

56

Мимохожий Однако

01.08.22

08:49

(55) Дело не в том, что ты хочешь, а в том, чтобы разобраться в причинах. Что мешает проверить на копии локально хотя бы в файловом режиме?

57

Mikhail Volkov

01.08.22

10:39

(56) Не пойму какие выводы я должен вынести из этого эксперимента, ну сменю версию платформы, ну исчезнет ошибка, а дальше что делать?

58

Mikhail Volkov

16.08.22

13:18

Нашел картинку старой службы компонентов https://ibb.co/318LvJV — до обновления 8.3.19, и инструкцию как ее создавал: https://infostart.ru/public/610960/ — COM соединения с базами 1С на различных версиях платформы «Без перерегистрации и СМС». Старые платформы 8.3.14 и 16 удалил. Добавил новую 8.3.19 вроде все по этой инструкции, но ошибка: «Недопустимая строка с указанием класса» осталась!?

59

TormozIT

16.08.22

14:17

С таким подходом к концу года сам разберешься наверное.

60

Mikhail Volkov

16.08.22

14:28

(59) Хотелось бы раньше.

61

lodger

16.08.22

14:38

(60) тогда вернись к (20) и попробуй утильку от TormozIT

62

Mikhail Volkov

16.08.22

15:52

(61) Ну скачал его, а что делать с ним не знаю?

63

TormozIT

16.08.22

18:09

(62) Открыть в нем инструмент «Управление СОМ классами 1С»

64

Mikhail Volkov

16.08.22

18:13

(63) И дальше что, как сделать правильно, чтобы работало?

65

TormozIT

16.08.22

18:29

Надо понять где выполняется код, вызывающий COM-соединение. Если на сервере, то тебе надо запустить на сервере терминальный сеанс под тем же пользователем ОС, под которым работает служба 1С. Открываешь «Управление СОМ классами 1С (ИР)» и показываешь нам картинку.

66

Mikhail Volkov

16.08.22

18:34

(65) Прежде чем показать нужно это запустить. Как это сделать?

67

TormozIT

16.08.22

18:40

68

Mikhail Volkov

16.08.22

19:13

(67) Не удачный пример с расширением. Расширением я не пользуюсь, оно в 8.3.10 недоступно. Другие примеры есть без расширений?

69

Mikhail Volkov

16.08.22

19:19

Для обычных форм.

70

TormozIT

16.08.22

22:28

(68) Обманываешь. Для варианта «Расширение» на странице скачивания указано «Для 1С 8.3.10+ в режиме совместимости 8.3.9+»

Если же не пользуешься по религиозным причинам, то значит ты скачал вариант «Портативный». Тогда идешь и читаешь раздел «Запуск» (целое одно предложение) в его описании http://devtool1c.ucoz.ru/index/variant_portativnyj/0-39

71

Mikhail Volkov

17.08.22

11:49

(70) Не понял, по ссылке: 404 Не Найдено!?

72

Mikhail Volkov

17.08.22

12:00

(70) > то значит ты скачал вариант «Портативный»

Да, писал в (21).

73

Mikhail Volkov

17.08.22

14:37

Нашел COM-соединение и версии платформ в ней ссылка на Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С — мало отличается от инструкции в (58), но есть неясные места, например, 5. Учетная запись для запуска приложения: выбираем учетку под которой стартует сервер 1С — как выбирать? Или 6. В ветке созданного приложения переходим на ветку «Роли» открываем роль «CreatorOwner» и далее в разделе «Пользователи» создаем пользователя — учетную запись под которой работает сервер 1С. — это как? Пароль я знаю, ввожу его, когда устанавливаю или обновляю сервер 1С. Открываю роль «CreatorOwner» в папке Пользователи вижу свою учетную запись — она и есть, ничего вводить не надо?

Далее все как (58), а нет: 9. Открываем свойства только что созданного компонента, идем на вкладку «Безопасность», проверяем в списке «Явно установленные для выделенных объектов роли» стоит ли «птичка» напротив роль CreatorOwner — если нет, тогда устанавливаем эту «птичку». Попробую с птичкой.

74

Mikhail Volkov

17.08.22

14:53

Птичка не помогла.

75

TormozIT

17.08.22

15:36

(71) форум зачем то испортил ссылку на https://forum.mista.ru/%22http://devtool1c.ucoz.ru/index/variant_portativnyj/0-39/%22

Копируй текст ссылки и вставляй в браузер сам.

76

Mikhail Volkov

17.08.22

16:54

(75) Открыл по ссылке http://devtool1c.ucoz.ru/index/variant_portativnyj/0-39 (части твой), далее скачал rdtt.zip, извлек из него ирПортативный.erp, попытался его открыть в Альфа-Авто на 8.3.10.2466, которая не может COM-соединится с КА1 (УПП) на 8.3.19.1522, получил:

Ошибка инициализации модуля: ВнешняяОбработка.ирПортативный.МодульОбъекта

по причине:

{ВнешняяОбработка.ирПортативный.МодульОбъекта(3928)}: Ошибка при вызове метода контекста (Создать)

по причине:

Ошибка подключения внешних метаданных

по причине:

Каталог не обнаружен ‘\\corp.akit\workspace$\1c\1с_Архивы\CA\Модули\ирКэш.epf’

Папку Модули создал, а где взять ирКэш.epf?

77

Mikhail Volkov

17.08.22

17:07

Создал пустой ирКэш.epf, получил:

Ошибка инициализации модуля: ВнешняяОбработка.ирПортативный.МодульОбъекта

по причине:

{ВнешняяОбработка.ирПортативный.МодульОбъекта(3928)}: Ошибка при вызове метода контекста (Создать)

по причине:

Ошибка подключения внешних метаданных

по причине:

Ошибка загрузки документа.

Как открыть, запустить ирПортативный.erp?

78

TormozIT

17.08.22

18:54

(76) Ладно. Бросай ты этот ИР. Там слишком сложно запускать. Тебе подойдут только инструменты из одной внешней обработки. У меня таких нет.

79

Mikhail Volkov

17.08.22

19:46

Нашел еще более старую картинку с платформой 8.3.14.1779: https://ibb.co/LvGfVX8, жаль не показано внутреннее содержимое вкладок.

80

Mikhail Volkov

17.08.22

20:05

Может кто подскажет что должно быть на вкладке Безопасность?

81

Сергиус

18.08.22

00:01

(50)Попробуй перерегистрировать dll из командной строки.

82

Mikhail Volkov

18.08.22

08:15

83

Mikhail Volkov

18.08.22

08:50

(80) В инструкции https://infostart.ru/public/610960/ в комментариях написано:

2. В оснастке служб компонентов, «Службы компонентов» — «Компьютеры» — «Мой компьютер» — «Приложения COM+»

3. Создаем новое приложение, правой кнопкой по «Приложения COM+» — «Создать» — «Приложение»

4*. Выбираем «Создать новое приложение», называем например «1cv8», тип выбираем «Серверное приложение»,

Учетная запись — Текущий пользователь, Пользователь с ролью Owner — поставил администратора компьютера (сервера).

(без этого возможна ошибка -2147024769(0x8007007F): Не найдена указанная процедура)

Мне не понятна фраза: «Пользователь с ролью Owner — поставил администратора компьютера (сервера)» — у меня лишь роль CreatorOwner https://ibb.co/7GrSHgm, надо что-то делать? Судя по старым картинкам приложения не ставил, только Компоненты.

84

Mikhail Volkov

18.08.22

08:54

85

Mikhail Volkov

18.08.22

15:25

Сделал все по Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С , но все равно ошибка: «Недопустимая строка с указанием класса» осталась!? Раньше не проверял OLE-соединение, только Com-соединение. Может все инструкции (которые здесь упоминал) не предназначены для OLE?

86

Mikhail Volkov

18.08.22

16:35

(83) В свойствах приложения на вкладку Удостоверение добавил администратора компьютера (сервера) ИмяСервера\USR1CV82, но это не помогло. Не знаю правильно ли понял фразу из (83)?

87

Сергиус

19.08.22

01:42

(82)консоль надо с правами админа запускать, а у тебя явно пользовательский запуск судя по картинке.

88

Mikhail Volkov

19.08.22

07:49

(87) Консоль командной строки запущена под Администратором.

89

Mikhail Volkov

19.08.22

07:54

(87) Смотри заголовок командной строки, или я чего-то не понимаю.

90

Mikhail Volkov

19.08.22

09:26

Каюсь база КА1 (УПП), к которой я цепляюсь по COM-соединению, оказывается открыта конфигуратором в 8.3.10.2466, перезапустил в 8.3.19.1522, но все равно ошибка: «Недопустимая строка с указанием класса» осталась!?

91

Mikhail Volkov

19.08.22

12:10

Удалил V83.COMConnector_8.3.19.1522 из службы компонентов совсем, Альфа-Авто ведет себя также как будь-то не было V83.COMConnector_8.3.19.1522 вовсе!?

92

Mikhail Volkov

19.08.22

12:41

Нет ошибки, например: Не найдена указанная процедура.

93

Kassern

19.08.22

12:44

Используйте веб сервисы и будет вам счастье

94

Mikhail Volkov

19.08.22

14:32

(93) Раньше же до перехода (обновления) на другую версию платформы работало.

95

Kassern

19.08.22

14:36

(94) Удалите все ком коннекторы, на клиенте и на сервере и заново зарегайте библиотеку комконнектор. Самостоятельно ее пропишите в компонентах по инструкциям. Может повезет и заработает

96

Mikhail Volkov

19.08.22

14:54

(95) Уточни, где, что удалить? В конфигураторе или в Службе компонентов? А то формы общие.

97

Kassern

19.08.22

15:22

(96) А как вы в конфигураторе удалите ком коннекторы?))

Речь идет о службах компонентов. Поймите уже наконец как работает ком соединение. Если на пальцах, есть библиотека 1с КомКоннектор.Длл. Через службу компонентов мы создаем обертку для этой библиотеки. Указываем права и прочие параметры. 1ска же цепляется к этой обертке и уже через нее работает с библиотекой. Нужно так же правильно прописывать путь до коннектора.

98

Kassern

19.08.22

15:23

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

99

lodger

19.08.22

16:23

(98) >> Обычно

это достаточно новая мулька. раньше вообще всегда надо было регать вручную

и теперь, когда ты ставишь дистриб на компе, где понах.ячено как у (0), то автоматически ничего не срабатывает — надо так же вручную вписывать новые компоненты.

100

Mikhail Volkov

19.08.22

16:57

Сделал опять приложение (в конфигураторе прописал его имя: БазаКА = Новый COMОбъект(«V8_ComConnector»); — правильно? как в Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С в компоненте на вкладке Безопасность для роли CreatorOwner поставил галочку. Получил ошибку: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Неверные или отсутствующие параметры соединения с информационной базой. Хотя компоненту V83.COMConnector.1 заменил на псевдоним V83.COMConnector_8.3.19.1522 — правильно?

101

Kassern

19.08.22

17:01

Вроде же так COMОбъект = Новый COMObject(«V83.COMConnector»);

102

Kassern

19.08.22

17:02

Или как там он у вас называется в службе компонентов

103

Kassern

19.08.22

17:03

Зайдите в приложения COM+ и гляньте как там у вас коннектор называется

104

Kassern

19.08.22

17:04

А блин, у вас ошибка то на методе Connect. следовательно ком объект у вас создался, только к базе не подрубились, так как корявые параметры соединения вы прописали.

105

Kassern

19.08.22

17:05

Это гораздо более оптимистичная ошибка по сравнению с класс не зарегистрирован

106

Mikhail Volkov

19.08.22

17:27

(103) V8_ComConnector — как в Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С

(104) > так как корявые параметры соединения вы прописали.

Где, в приложении или компоненте? В компоненте только C:\Program Files\1cv8\8.3.19.1522\bin\comcntr.dll указывал.

107

Kassern

19.08.22

17:28

(106) У вас же четко прописано «Получил ошибку: Ошибка при вызове метода контекста (Connect)». Вот и смотрите, что вы передаете в параметрах метода Connect в 1с

108

Kassern

19.08.22

17:31

Речь про Соединение = COMОбъект.Connect(СтрокаСоединения); — Здесь же у вас ошибка и ругается на СтрокаСоединения, я все правильно понял?

109

lodger

19.08.22

17:44

(108) такое ощущение, что ТС хорошенько набухивается, перед тем как зайти на мисту.

110

Kassern

19.08.22

17:47

(109) Ощущение, что он больше админ, чем 1сник.

111

Mikhail Volkov

19.08.22

17:49

(108) Вроде да, но в строке соединения имена: сервера, базы, пользователя, пароль.

112

Kassern

19.08.22

17:54

Скиньте кусок кода строки соединения, логин и пароль только замените на какой нить админ и 123

113

Mikhail Volkov

19.08.22

18:28

(112) Да, что-то я с ней намудрил… оказывается не там ищу.

114

Mikhail Volkov

19.08.22

18:37

(113) И все же: Ошибка: {ОбщийМодуль.мвДоработки.Модуль(6649)}: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса , СтрокаПодключения: Srvr=»ANDROMEDA:1641″; Ref=»PATRСА»;Usr=»Администратор»;Pwd=»123″;

115

Mikhail Volkov

19.08.22

19:36

ОбщийМодуль.мвДоработки.Модуль(6649) это: ТекCOMОбъект = БазаКА.Connect(СтрокаПодключения);

116

Mikhail Volkov

19.08.22

20:24

(115) Тоже что-то со строкой подключения?

117

Mikhail Volkov

19.08.22

20:29

2-я платформа на других портах, может :1641 в имени сервере в СтрокаПодключения не нравится?

118

TormozIT

19.08.22

20:56

«Недопустимая строка с указанием класса» означает что в реестра нужной разрядности отсутствует зарегистрированный COM класс. Обычно такая ошибка устраняется парой кликов под администратором компьютера.

119

Mikhail Volkov

20.08.22

08:10

(118) Как? Если в СтрокаПодключения удалить порт, не устранит эту ошибку?

120

Mikhail Volkov

20.08.22

08:43

(119) Нет, не устранит: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Неверные или отсутствующие параметры соединения с информационной базой.

121

Kassern

20.08.22

08:56

(120) Блин поймите уже,

«Недопустимая строка с указанием класса» — это значит вы не смогли к библиотеке подключиться и создать ком объект

«Неверные или отсутствующие параметры соединения с информационной базой» — это значит вы смогли подключиться и создать ком объект, но при попытке подключения к другой базе возникла ошибка из-за отсутствующих параметров соединения с информационной базой (корявая строка соединения)

122

Mikhail Volkov

20.08.22

09:16

(121) Со второй ошибкой понятно в чем корявость СтрокаПодключения — убрал из нее порт. А с 1-й ошибкой в чем корявость?

123

Mikhail Volkov

20.08.22

10:47

(118) Как устраняется эта ошибка «Недопустимая строка с указанием класса» парой кликов под администратором компьютера, и где?

124

Mikhail Volkov

20.08.22

13:22

На вкладке Безопасность у компоненты V83.COMConnector_8.3.19.1522 ничего не доступно, https://ibb.co/dP90cnx — даже галочку нельзя поставить у роли CreatorOwner. А у приложения сейчас так: https://ibb.co/4KmDSb0 — правильно?

125

Mikhail Volkov

22.08.22

12:23

(118) ап…

126

Mikhail Volkov

24.08.22

19:10

Может платформа 8.3.19.1522 неудачная в этом отношении, в последней КА 2.5.8.267 пишут: Рекомендуется использовать текущую версию конфигурации «1С:Комплексная автоматизация 2» версией системы 1С:Предприятие 8 8.3.21.1302 (и выше) в режиме совместимости 8.3.17.

Минимальная версия системы «1С:Предприятие 8» для использования текущей версии «1С:Комплексная автоматизация 2» не ниже 8.3.17.2306.

Может попробовать 8.3.21.1302?

127

Mikhail Volkov

25.08.22

15:20

Что-то засомневался правильно ли поставил платформу 8.3.19.1522? Раньше то до 8.3.10.2466 ставил отдельно 32-х разрядную клиентскую часть и отдельно 64-х разрядную серверную часть, а теперь скачиваю: Технологическая платформа 1С:Предприятия (64-bit) для Windows (верно?), для 2-й платформы Сервер «1С:Предприятия» устанавливаем не как службу, а как приложение, т. е. снимаю флаг «Установить сервер 1С:Предприятия 8 как сервис Windows» во время установки. Где бы почитать как устанавливать 2-ю платформу на тот же сервер?

128

Kassern

25.08.22

15:23

(127) какая жесть у вас на сервере, не удивительно, что ком у вас ругается. Потом еще окажется, что создаете вы ком объект на клиенте, а обертку для вашей компоненты делаете на сервере.

129

Kassern

25.08.22

15:24

Если уж так приспичило иметь 2 платформы на сервере, то разверните 2 службы 1с и распределите их на разные порты. В итоге 100500 статей по этому поводу.

130

Kassern

25.08.22

15:25

так же важно понимать комконнектор какой платформы зареган и используется для соединения

131

Mikhail Volkov

25.08.22

15:56

(129) Так и делаю, но хотелось бы убедиться, что правильно…

(130) Хочу все базы кроме Альфа-Авто (ее никак) пересадить на одну платформу.

132

Kassern

25.08.22

15:57

(131) «Так и делаю»->»для 2-й платформы Сервер «1С:Предприятия» устанавливаем не как службу, а как приложение,…» Где вы так делаете?

133

Mikhail Volkov

25.08.22

16:12

(132) В смысле? А где надо?

134

Mikhail Volkov

25.08.22

17:46

(132) По статье https://tavalik.ru/zapusk-neskolkix-serverov-1spredpriyatiya-raznyx-versij/ пункт 2. Установка серверной части «1С:Предприятия» версии 8.3

135

Mikhail Volkov

26.08.22

09:54

В этой статье на 1-й картинке https://tavalik.ru/wp-content/uploads/2014/07/zapusk-neskolkix-serverov-1spredpriyatiya-raznyx-versij_02.png COM-Соединение вычеркнуто из установки, решил проверить не вычеркнуто ли у меня: из платформы запустил 1CEnterprise 8 (x86-64).msi, выбираю Изменить, но не вижу COM-Соединения!? https://ibb.co/Y2mQwKj

136

Mikhail Volkov

26.08.22

11:16

И что в этом сообщении (англ.) https://ibb.co/ky4wDXt

137

Mikhail Volkov

26.08.22

13:37

Перевод (136): Программа установки должна обновить файлы или службы, которые нельзя обновить во время работы системы. Если вы решите продолжить, для завершения настройки потребуется перезагрузка.

138

Mikhail Volkov

29.08.22

08:48

(135) Даже совсем удалил платформу, и снова поставил, все равно нет COM-Соединения в выборе компонентов. (132) А 2-я картинка: «для 2-й платформы Сервер «1С:Предприятия» устанавливаем не как службу, а как приложение,…» после удаления платформы появилась.

139

Mikhail Volkov

29.08.22

10:34

Далее все делаю по инструкции в (134), получаю: CreateService error! Ошибка создания службы! Наверное ее надо удалить с предыдущей установки. Как?

140

Mikhail Volkov

29.08.22

11:00

(139) sc delete «имя службы»

141

Mikhail Volkov

30.08.22

08:18

Имя службы: «1C:Enterprise 8.3.19 Server Agent (x64)» — специально переименовал ее в реестре, как службу с нестандартным диапазоном портов. Создавал ее не по инструкции (134). Тогда еще PowerShell не пользовался, а чем создавал службу — не помню. Вчера создавал PowerShell: .\ragent.exe -instsrvc -port 1640 -regport 1641 -range 1660:1690 -usr .\USR1CV82 -pwd парольUSR1CV82 -d «C:\Program Files\1cv8\srvinfo_1641\» (ждал ночной перезагрузки сервера), а сегодня обнаружил лишь одну службу: 1C:Enterprise 8.3 Server Agent (x86-64) с нестандартным диапазоном портов. Куда делась служба для платформы 8.3.10.2466 со стандартным диапазоном портов 15хх?

142

Mikhail Volkov

30.08.22

08:31

Альфа-Авто вроде работает, сидят в ней пользователи.

143

Mikhail Volkov

30.08.22

16:30

Что делать дальше? Удалить службу 1C:Enterprise 8.3 Server Agent (x86-64) в реестре их 3: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\1C:Enterprise 8.3 Server Agent (x86-64), HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\1C:Enterprise 8.3 Server Agent (x86-64), HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent (x86-64), и попытаться восстановить службу для платформы 8.3.10.2466 со стандартным диапазоном портов 15хх? А потом пытаться восстановить службу для платформы 8.3.19.1522 со нестандартным диапазоном портов?

144

PR

30.08.22

17:07

(10) Ужаснулся и решил взорвать интернет, чтобы даже видавшие виды матерые одинесники поседели на твоих глазах?

Запускаешь cmd из-под администратора и выполняешь regsvr32 «C:\Program Files (x86)\1cv8\8.3.20.1549\bin\comcntr.dll»

Если сервер 1С 64хбитный, то regsvr32 «C:\Program Files\1cv8\8.3.20.1549\bin\comcntr.dll»

Вместо 8.3.20.1549 конечно же вставляешь свою версию 1С

Надеюсь, ты там не поседел от ужаса всего написанного?

145

Mikhail Volkov

30.08.22

17:40

(144) Уже было (82).

146

Kassern

30.08.22

17:47

делайте по шагам, вас нужно научить, как отлаживать ошибки? Окей…

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

147

СеменовСемен

30.08.22

17:49

(145) какую ошибку пишет и в какой момент?

148

Kassern

30.08.22

17:50

(147) вангую, я все зарегал, все сделалось, а при подключении ошибка класс не зарегистрирован)

149

СеменовСемен

30.08.22

17:52

разрядность не та наверняка

150

Kassern

30.08.22

17:53

(149) да там может быть 100500 причин, мы у ТС на сервере не были,  хз как он ставил, какая у него структура работы с 1с, как он все это дело запускает и т.д. и т.п.

151

Kassern

30.08.22

17:55

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

152

Kassern

30.08.22

17:56

Еще не понятно как права настроены, под какими юзверами службы запущены, под какими правами компонента вызывается и как. В общем 100500 нюансов, о которых мы не знаем.

153

Kassern

30.08.22

17:57

Поэтому я и писал вначале, хватит ком мучать, пилите веб/хттп сервисы)

154

Kassern

30.08.22

17:59

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

155

Mikhail Volkov

30.08.22

18:21

(143) Удалил службу 1C:Enterprise 8.3 Server Agent (x86-64), запускаю установку от имени администратора, получаю: https://ibb.co/0h2VmSB В каких разрешениях мне убедиться?

156

СеменовСемен

30.08.22

18:25

(151) версия не важно какая. там ошибка совершенно другая

157

Mikhail Volkov

30.08.22

18:38

(156) Версия 8.3.19.1522. Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса.

158

PR

30.08.22

18:44

(157) Судя по тому, сколько ты там говна наворочал, тебе проще всего снести 1С, поставить заново и зарегистрировать COM

159

СеменовСемен

30.08.22

18:45

(157) либо не та разрядность либо не  тот комп

160

PR

30.08.22

18:47

(159) Либо прокладка

161

Mikhail Volkov

30.08.22

19:16

(158) Как зарегистрировать COM?

(159) Для платформы 8.3.10.2466 нужна 32-х разрядная клиентская часть, для 8.3.19.1522 она вроде не нужна.

(160) Что за прокладка?

162

СеменовСемен

30.08.22

19:34

(161) где запускаешь код
Клиент или сервер?
Какой разрядности?

163

СеменовСемен

30.08.22

19:35

А может ты просто криво имя ком объекта написал?

164

PR

30.08.22

19:35

(161) Между компьютером и стулом

165

Mikhail Volkov

31.08.22

09:34

(162) Какой код? Этот (115) он в общем модуле — на сервере. Сервер х64.

(163) Было см. (106), теперь: БазаКА = Новый COMОбъект(«V83.COMConnector_8.3.19.1522»);

Почему появилась 2-я платформа надо описывать? (вроде ранее описывал) Поначалу ставил 8.3.14.1779 и «Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса» вроде не было. С повышением релиза КА2 требовалось обновлять эту платформу. Сейчас возникли подозрения, что обновлял ее неправильно. Как правильно обновить платформу, ее службу удалять обязательно (или достаточно исправить цифры платформы)?

Сейчас больше волнует куда делась служба для 8.3.10.2466, на которой работает Альфа-Авто, после удаления службы 1C:Enterprise 8.3.19 Server Agent (x64) (141)? И не восстанавливается при запуске Platform\8.3.10.2466\x86_64\

166

СеменовСемен

31.08.22

09:35

что это за х..ня
Новый COMОбъект(«V83.COMConnector_8.3.19.1522»);

167

Kassern

31.08.22

09:41

(166) обертку можно как угодно назвать для библиотеки.

168

СеменовСемен

31.08.22

09:41

но зачем все эти выкрутасы?

169

Mikhail Volkov

31.08.22

09:43

(166) Вообще то: Новый COMОбъект(«V83.COMConnector_» + ВерсияПлатформы);

170

Mikhail Volkov

31.08.22

09:46

171

СеменовСемен

31.08.22

09:48

(170) но зачем?

172

СеменовСемен

31.08.22

09:50

зачем нужны разные версии вообще?

173

Mikhail Volkov

31.08.22

10:07

(172) Печально, но например Альфа-Авто 4.1 работает не выше 8.3.10.2466.

174

СеменовСемен

31.08.22

10:12

(173) ну закомментируй эту проверку

175

Mikhail Volkov

31.08.22

10:35

(174) Вроде нет проверок, не работает и все…

Как правильно обновить платформу, ее службу удалять обязательно (или достаточно исправить цифры платформы)?

Сейчас больше волнует куда делась служба для 8.3.10.2466, на которой работает Альфа-Авто, после удаления службы 1C:Enterprise 8.3.19 Server Agent (x64) (141)? И не восстанавливается при запуске Platform\8.3.10.2466\x86_64\

176

СеменовСемен

31.08.22

11:04

(175) все удали и заново все устанавливай

177

Kassern

31.08.22

11:06

Создайте базу пустышку, из нее попробуйте сделать &НаСервере ком соединение, например через внешнюю обработку.

178

Kassern

31.08.22

11:07

Базу запустите там же где у вас кластер серверов установлен.

179

СеменовСемен

31.08.22

11:07

(177) он все уже убил.

180

Kassern

31.08.22

11:10

(179) я надеюсь, колесо сансары сделает свой очередной оборот и ком коннектор воскреснет из пепла)

181

Mikhail Volkov

31.08.22

11:27

(179) Если Вы про (155), то удалил службу не на рабочем сервере, а на своем компьютере.

182

СеменовСемен

31.08.22

11:28

(181) делай обмен через кд2 — самое простое.
все эти заморочки нафиг не нужны

183

Mikhail Volkov

31.08.22

11:47

(182) Основной объем документов идет через КД2, но некоторые объекты КА: элементы справочника, например, контрагенты, или банковские документы можно открывать непосредственно через Com из Альфа-Авто. Так было когда Альфа-Авто и КА работали на одной платформе, хотелось бы на разных.

184

Mikhail Volkov

31.08.22

13:00

(176) Что именно «все»? Файлы из каталогов: «C:\Program Files (x86)\1cv8\8.3.10.2466\bin\» и «C:\Program Files\1cv8\8.3.19.1522\bin\» — понятно, службы sc delete «имя службы» — тоже понятно. А реестр надо чистить, как? Я бы на своем компе попробовал, да ключи от Альфа-Авто только на сервере.

(177) Хотя если «Создайте базу пустышку», то они не нужны.

185

Kassern

31.08.22

13:01

(184) Вам просто нужно протестить работу библиотеки ком коннектор, для этого вам конфа не нужна, можно и на пустышке

186

Mikhail Volkov

31.08.22

13:17

(177) Что должно быть в этой внешней обработке?

187

Mikhail Volkov

31.08.22

15:16

На папку Platform\8.3.10.2466\x86_64\ добавил себе полные права, запустил, ошибки (155) не было, но служба 1C:Enterprise 8.3.10.2466 Server Agent не восстановилась?

188

Kassern

31.08.22

15:28

(186)

&НаСервере

Процедура ТестПодключения()

COMОбъект=Новый COMObject(«V83.COMConnector»);

Соединение= COMОбъект.Connect(СтрокаСоединения);

КонецПроцедуры

189

Kassern

31.08.22

15:32

Ну или как там у вас коннектор называется

190

Mikhail Volkov

31.08.22

15:55

(187) Не пойму как без нее Альфа-Авто сейчас работает?

(188) СтрокаСоединения ее надо писать: Srvr=»ANDROMEDA:1641″; Ref=»PATRСА»;Usr=»Администратор»;Pwd=»123″;?

(189) «V83.COMConnector_8.3.19.1522»

191

Kassern

31.08.22

16:01

(190) «»V83.COMConnector_8.3.19.1522″» — если вы не ползали и сами не прописывали новое имя для обертки, то тогда просто V83.COMConnector

«СтрокаСоединения ее надо писать» — попробуйте соединиться с обычной файловой базой на этом же сервере.

192

Mikhail Volkov

31.08.22

16:24

(187) Из инструкции по установке разных версий серверов 1С на один сервер — http://www.gilev.ru/multiple1cservers/

Для регистрации новой службы необходимо воспользоваться утилитой sc.exe, и прописать в службу необходимые параметры. Для этого можно создать *.bat-файл. Пример текст *.bat-файла для описываемой ситуации приведен ниже:

!!! Запуск *.bat-файлов производится только с правами Администратора

echo off

chcp 1251

set SrvcName=»1C:Enterprise 8.3.12 Server Agent»

set BinPath=»\»C:\Program Files\1cv8\8.3.12.1924\bin\ragent.exe\» -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \»C:\Program Files\1cv8\srvinfo_8_3_12\»»

set Desctiption=»Агент сервера 1С:Предприятия 8.3.12″

sc create %SrvcName% binPath= %BinPath% start= auto displayname= %Desctiption% depend= Tcpip/Dnscache/lanmanworkstation/lanmanserver/

pause

Может прописать что-то подобное под 8.3.10.2466?

193

Mikhail Volkov

31.08.22

18:10

(187) Не пойму как без службы серверная база Альфа-Авто работает? Сейчас на сервере только одна служба 1C:Enterprise 8.3 Server Agent (x86-64) с исполняемым файлом «C:\Program Files\1cv8\8.3.19.1522\bin\ragent.exe» -srvc -agent -regport 1641 -port 1640 -range 1660:1690 -d «C:\Program Files\1cv8\srvinfo_1641», и та не работает (останавливается). Может я ее не вижу среди служб?

194

Mikhail Volkov

31.08.22

18:28

И не ставится, т.е. установка из Platform\8.3.10.2466\x86_64\ проходит без ошибок, окно https://tavalik.ru/wp-content/uploads/2014/07/zapusk-neskolkix-serverov-1spredpriyatiya-raznyx-versij_03.png не появляется, и служба не устанавливается!?

195

Волшебник

31.08.22

18:33

сервер не зависит от конфигурации

196

Mikhail Volkov

31.08.22

19:15

(195) Да, но для любой серверной базы нужна служба? КА1 работала без порта в строке подключения на 8.3.10.2466 (и сейчас работает), а с портом на 8.3.19.1522.

197

Mikhail Volkov

31.08.22

19:38

(193) Служба работает (не останавливается).

198

Mikhail Volkov

31.08.22

19:51

(191) Службы на этот эксперимент не влияют?

199

Kassern

31.08.22

23:49

(198) Причем тут службы 1с? Простой пример. У вас есть 2 файловые базы, нужно от одной базы подключиться к другой через Ком. В этом варианте вообще нет кластера, сервера 1с и т.д. Для ком соединения важна библиотека ком коннектор. Там где вызывается это соединение 1ска должна иметь доступ к обертке этой библиотеки. Библиотека должна быть зарегистрирована в ОС путем regsvr32 там, где вызывается это соединение.

200

Mikhail Volkov

02.09.22

12:31

(199) Если службы не причем, то надобность в этом эксперименте вроде отпадает: единственное на что у меня падает подозрение — это неправильное обновление последней платформы (вроде только цифры в реестре менял номера платформы) до сих пор не знаю как правильно? Но со службой не чего не получается, а делать что-то надо… Внешнюю обработку не стал делать, написал в старой файловой копии Альфа-Авто:

Процедура КнопкаВыполнитьНажатие(Кнопка)

    СтрокаПодключения = «File=» + ?(ПустаяСтрока(КаталогБазы), «\\corp.akit\workspace$\1c\1С\PatrCA», КаталогБазы)

                      + «;Usr=» + ?(ПустаяСтрока(ИмяПользователя), «Администратор», ИмяПользователя)

                      + «;Pwd=» + ?(ПустаяСтрока(Пароль), «123», Пароль) + «;»;

    Сообщить(«СтрокаПодключения: » + СтрокаПодключения, СтатусСообщения.Информация);

    Попытка

        Сообщить(«Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 » + ТекущаяДата(), СтатусСообщения.Информация);

        БазаКА = Новый COMОбъект(«V83.COMConnector_8.3.19.1522»);

        ТекCOMОбъект = БазаКА.Connect(СтрокаПодключения);

        СтрокаСообщенияОбОшибке = «»;

        Сообщить(«Подключение выполнено к базе: ‘» + ?(ПустаяСтрока(КаталогБазы), «\\corp.akit\workspace$\1c\1С\PatrCA», КаталогБазы) + «‘ » + ТекущаяДата(), СтатусСообщения.Информация);

    Исключение

        СтрокаСообщенияОбОшибке = «При попытке соединения с COM-сервером произошла следующая ошибка:» + Символы.ПС + ОписаниеОшибки();

        Сообщить(СтрокаСообщенияОбОшибке, СтатусСообщения.Информация);

    КонецПопытки;

КонецПроцедуры

Запустил ее на платформе 8.3.10.2466, база \\corp.akit\workspace$\1c\1С\PatrCA запущена на 8.3.19.1522, в итоге:

СтрокаПодключения: File=\\corp.akit\workspace$\1c\1С\PatrCA;Usr=Администратор;Pwd=123;

Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 02.09.2022 14:03:41

Подключение выполнено к базе: ‘\\corp.akit\workspace$\1c\1С\PatrCA’ 02.09.2022 14:03:50

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

Да, перенес обработку в пустую конфигурацию (сохранил ее как внешнюю обработку, и вставил в пустую конфигурацию), но запустить ее не смог, выдает: https://ibb.co/ByWh1MW , где, какую галочку надо поставить?

201

Mikhail Volkov

02.09.22

14:23

Нет, без порта все так же: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса

202

Kassern

02.09.22

16:10

(201) Вы можете установить тупо 1ску платформу, создать файловую базу, зарегать ком коннектор, создать обертку в компонентах винды и попробовать вызвать подключение к этой файловой базе? Тут вам не нужен кластер, ни порт и прочая фигня.

203

Mikhail Volkov

02.09.22

16:55

(202) У меня файловых копий полно. Обертка создана еще для рабочего режима. Успешно Com-соединился из базы копии Альфа-Авто с копией базы КА на 8.3.19.1522 — другой платформе. И что, это же файловые базы? Создать новую пустую базу не смог https://ibb.co/ByWh1MW

204

Mikhail Volkov

03.09.22

09:03

(202) Значит обертка и служба компонентов невиноваты в моей проблеме. Совсем забыл у меня же 2 сервера: PERSEUS — сервер терминалов, на котором все и делаю: службы и служба компонентов, и Andromeda — SQL сервер, на нем все делаю также как на PERSEUS, службы во всяком случае. Служба 1C:Enterprise 8.3 Server Agent (x86-64) для 8.3.10.2466 со стандартным диапазонов портов на нем сохранилась, наверное поэтому работает Альфа-Авто? А может на PERSEUS службы вообще не нужны? Или теперь нужны для службы компонентов? Или ее перенести на Andromeda?

205

Mikhail Volkov

03.09.22

10:16

Решил на Andromeda сделать такую же Службу компонентов как на PERSEUS, но версии у них разные (Рус/Eng). V8COMConnector — это которая в Eng версии?

206

Mikhail Volkov

03.09.22

10:18

Службы компонентов на Andromeda и PERSEUS https://ibb.co/jJR53gB

207

Mikhail Volkov

04.09.22

14:55

На Andromeda сделал приложение V8_ComConnector и в нем компоненту V83.COMConnector_8.3.19.1522 (только одну обертку), но это не помогло — все так же, согласно (202) с обертками у меня все нормально (203). Решил усложнить эксперимент — Com-соединиться с серверной базой:

Процедура КнопкаВыполнитьНажатие(Кнопка)

    Сервер = ?(ПустаяСтрока(Сервер) И Серверная, «andromeda», Сервер);

    СтрокаПодключения = ?(Серверная, «Srvr=» + ?(ПустаяСтрока(Сервер), «andromeda», Сервер) + «;Ref=» + ?(ПустаяСтрока(КаталогБазы), «PatrCA», КаталогБазы),

                                     «File=» + ?(ПустаяСтрока(КаталогБазы), «\\corp.akit\workspace$\1c\1С\PatrCA», КаталогБазы))

                      + «;Usr=» + ?(ПустаяСтрока(ИмяПользователя), «Администратор», ИмяПользователя)

                      + «;Pwd=» + ?(ПустаяСтрока(Пароль), «2001221», Пароль) + «;»;

    Сообщить(«СтрокаПодключения: » + СтрокаПодключения, СтатусСообщения.Информация);

    Попытка

        Сообщить(«Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 » + ТекущаяДата(), СтатусСообщения.Информация);

        БазаКА = Новый COMОбъект(«V83.COMConnector_8.3.19.1522»);

        ТекCOMОбъект = БазаКА.Connect(СтрокаПодключения);

        СтрокаСообщенияОбОшибке = «»;

        Сообщить(«Подключение выполнено к базе: ‘» + ?(ПустаяСтрока(КаталогБазы), «\\corp.akit\workspace$\1c\1С\PatrCA», КаталогБазы) + «‘ » + ТекущаяДата(), СтатусСообщения.Информация);

    Исключение

        СтрокаСообщенияОбОшибке = «При попытке соединения с COM-сервером произошла следующая ошибка:» + Символы.ПС + ОписаниеОшибки();

        Сообщить(СтрокаСообщенияОбОшибке, СтатусСообщения.Информация);

    КонецПопытки;

КонецПроцедуры

Получил другую ошибку:

СтрокаПодключения: Srvr=andromeda;Ref=PatrCA;Usr=Администратор;Pwd=123;

Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 04.09.2022 16:18:10

При попытке соединения с COM-сервером произошла следующая ошибка:

{Обработка.ТестComСоединение.Форма.Форма.Форма(13)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Несоответствие версий клиента и сервера 1С:Предприятия

Различаются версии клиента и сервера (8.3.19.1522 — 8.3.10.2466), клиентское приложение: COM-соединение

Для sql баз обертка не работает?

208

СеменовСемен

04.09.22

17:59

(207) так у тебя сервер 8.3.10
тебе нужно делать V83.COMConnector_8.3.10.2466

209

Mikhail Volkov

05.09.22

08:57

(208) Пытаюсь Com-соединиться из файловой базы обычных форм с серверной базой. Где делать V83.COMConnector_8.3.10.2466 вместо БазаКА = Новый COMОбъект(«V83.COMConnector_8.3.19.1522»);?

210

Mikhail Volkov

05.09.22

13:04

(208) Ну заменил на БазаКА = Новый COMОбъект(«V83.COMConnector_8.3.19.1522»); хотя в нем dll C:\Program Files\1cv8\8.3.10.2466\bin\comcntr.dll, получил: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован

211

Mikhail Volkov

05.09.22

13:16

Описался (210), заменил на БазаКА = Новый COMОбъект(«V83.COMConnector_8.3.10.2466»);

212

СеменовСемен

05.09.22

14:19

(210) да сделай ты нормально с самого начала.
Если не получается исправлять — удаляй и делай снова

213

Kassern

05.09.22

14:23

(211) У вас есть понимание, где отработает комконнектор, когда вы используете &НаСервере Новый COMОбъект(«V83.COMConnector..)? У вас же 2 кластера (возможно 2 различных физических сервера). Как вы думаете, возьмет с сервера, где вы запускаете обработку, или с сервера, где опубликован кластер базы, из которой вы вызываете соединение?

214

Mikhail Volkov

05.09.22

15:53

(213) Пытаюсь Com-соединиться из той же файловой базы обычных форм с серверной базой. Похоже нет понимания, объясни…

215

Kassern

05.09.22

15:58

(214) когда вы выполняете код с директивой &НаСервере, то он отрабатывается сервером, где установлен кластер текущей базы. Простой пример. Есть у вас Сервер Андромеда с кластером, где развернута база Альфа-авто, есть у вас сервер Основной, где у вас развернута тестовая база. Так вот если вы запустили код в тестовой базе с директивой &Насервере, то он отработает на сервере Основной и будет искать там обертку для вашего ком коннектора.

216

Kassern

05.09.22

16:01

Если вы запускаете ком коннектор с директивой &НаКлиенте то КомКоннектор будет использоваться текущего рабочего места, где запущена 1ска.

217

Mikhail Volkov

05.09.22

17:02

(216) В тестовом варианте запускаю Com-соединение из обычной формы, т.е. &НаКлиенте? В рабочем варианте запускаю из общего модуля, &НаСервере? (в ОФ нет процедур &НаКлиенте и &НаСервере) И что, как правильно писать код? В тестовом варианте так и так пробовал: с «V83.COMConnector_8.3.19.1522» и с «V83.COMConnector_8.3.10.2466», результат: (207) и (210) — оба отрицательные.

218

Mikhail Volkov

05.09.22

17:12

(212) В новом релизе КА (ERP): Рекомендуемая версия платформы 8.3.21.1302 (и выше) — хочу обновить 2-ю платформу, службу надо обновлять, как?

219

ejikbeznojek

05.09.22

17:24

Переделал бы уже давно на вебсервис, с передаваемым туда параметром текстом запроса))

220

Kassern

05.09.22

17:27

(219) следующая тема тогда будет, почему у меня четырехсотую ошибку сервис возвращает, или почему апач не запускается и т.д.

221

Kassern

05.09.22

17:29

(218) Службу конечно нужно обновлять. Нельзя запустить клиент одной версии, а сервер другой. 1ска сразу на это ругнется. Версия клиента и сервера должны совпадать.

222

ejikbeznojek

05.09.22

17:30

(218) Делай сервис на модном «Автономном сервере» от 1С))

223

Mikhail Volkov

05.09.22

18:12

(220) Лучше бы ответил на (217).

224

СеменовСемен

05.09.22

19:30

(223) заново зарегистрируй класс

225

Mikhail Volkov

06.09.22

08:18

(224) Как?

226

Kassern

06.09.22

09:02

(223) как я могу ответить на этот вопрос? Я хз как вы там все установили, какие там права стоят, как сетка устроена, как вы там что регали в плане компонент и т.д. Есть мануал, как поднимать ком соединение на винде, он уже заезжен до дыр, нового вам вряд ли кто сможет подсказать без явного подключения и оценки вашей системы.

227

Mikhail Volkov

06.09.22

09:52

(226) Что за мануал? Можно ссылку?

228

Kassern

06.09.22

09:56

(227) Да любой по ком коннекту. Везде одна и та же инфа, как регистрировать библиотеку, как создавать обертку, какие галки ставить. Вот например:

https://infostart.ru/1c/articles/197627/

229

Kassern

06.09.22

10:19

(228) Только тут вместо V82, лучше V83 написать.

230

Mikhail Volkov

06.09.22

10:45

(217) В новой пустой базе только обработка ТестComСоединение (поменял Основной режим запуска на Обычный режим чтобы не было ошибки https://imgbb.com/ByWh1MW ), в саму обработку внес незначительные изменения:

Процедура КнопкаВыполнитьНажатие(Кнопка)

    Сервер = ?(ПустаяСтрока(Сервер) И Серверная, «andromeda», Сервер);

    СтрокаПодключения = ?(Серверная, «Srvr=» + ?(ПустаяСтрока(Сервер), «andromeda», Сервер) + «;Ref=» + ?(ПустаяСтрока(КаталогБазы), «PatrCA», КаталогБазы),

                                     «File=» + ?(ПустаяСтрока(КаталогБазы), «\\corp.akit\workspace$\1c\1С\PatrCA», КаталогБазы))

                      + «;Usr=» + ?(ПустаяСтрока(ИмяПользователя), «Администратор», ИмяПользователя)

                      + «;Pwd=» + ?(ПустаяСтрока(Пароль), «2001221», Пароль) + «;»;

    Сообщить(«СтрокаПодключения: » + СтрокаПодключения, СтатусСообщения.Информация);

    Попытка

        Сообщить(«Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 » + ТекущаяДата(), СтатусСообщения.Информация);

        БазаКА = Новый COMОбъект(«V83.COMConnector_8.3.19.1522»);

        ТекCOMОбъект = БазаКА.Connect(СтрокаПодключения);

        СтрокаСообщенияОбОшибке = «»;

        Сообщить(«Подключение выполнено к базе: ‘» + ?(Серверная, «Srvr=» + ?(ПустаяСтрока(Сервер), «andromeda», Сервер) + «;Ref=» + ?(ПустаяСтрока(КаталогБазы), «PatrCA», КаталогБазы),

        ?(ПустаяСтрока(КаталогБазы), «\\corp.akit\workspace$\1c\1С\PatrCA», КаталогБазы)) + «‘ » + ТекущаяДата(), СтатусСообщения.Информация);

    Исключение

        СтрокаСообщенияОбОшибке = «При попытке соединения с COM-сервером произошла следующая ошибка:» + Символы.ПС + ОписаниеОшибки();

        Сообщить(СтрокаСообщенияОбОшибке, СтатусСообщения.Информация);

    КонецПопытки;

КонецПроцедуры

И вроде без ошибок соединилась:

СтрокаПодключения: Srvr=andromeda;Ref=PatrCA;Usr=Администратор;Pwd=123;

Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 06.09.2022 12:39:43

Подключение выполнено к базе: ‘Srvr=andromeda;Ref=PatrCA’ 06.09.2022 12:39:51

231

Kassern

06.09.22

10:47

(230) поздравляю, вопрос решен?

232

Mikhail Volkov

06.09.22

11:08

(231) Нет, это файловая база подключается к серверной. Попробую сделать ее серверной.

233

Mikhail Volkov

06.09.22

11:44

ComСоединение — тоже успех!

СтрокаПодключения: Srvr=andromeda;Ref=PatrCA;Usr=Администратор;Pwd=123;

Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 06.09.2022 13:33:03

Подключение выполнено к базе: ‘Srvr=andromeda;Ref=PatrCA’ 06.09.2022 13:33:11

Но в тестовой базе подключаюсь из формы (т.е. &НаКлиенте?), а в рабочей базе запускаю из общего модуля, &НаСервере?

234

Mikhail Volkov

06.09.22

14:19

Дело сдвинулось, вроде нашел ошибку.

235

Kassern

06.09.22

14:52

(234) В чем проблема была?

236

Mikhail Volkov

06.09.22

16:19

(235) В формировании «V83.COMConnector_8.3.19.1522» в БазаКА = Новый COMОбъект(«V83.COMConnector_» + НомерВерсии); Когда делал обертку в службе компонентов в названии приложения не мог поставить точки, заменил их «_», а НомерВерсии прописал как СтрЗаменить(НомерВерсии, «.», «_»). А точки пишутся в названии компоненты. После в службе компонентов все исправил, а в коде нет, оставил СтрЗаменить(НомерВерсии, «.», «_») — в общем «сам дурак», не внимательный.

237

Kassern

06.09.22

16:25

(236) да уж…В общем, как и писал, чудес не бывает.

Top.Mail.Ru

Клерк.Сообщество

Загрузка…

Top.Mail.Ru

Содержание:

1.     Пример с внешней обработкой

2.     Исправление ошибки в 1С

3.     Новое условие при выполнении запроса

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

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

1. Пример с внешней обработкой

Для простоты создадим внешнюю обработку 1С 8, которая будет выгружать в табличную часть обработки номенклатуры.

Предположим, у вас есть таблица значений, заполняемая некоторыми данными, например, наименованием производителей (Рисунок 1).

Пример с внешней обработкой

Рис. 1

Теперь напишем запрос, который будет выводить номенклатуру данных производителей (Рисунок 2).

выводить номенклатуру данных

Рис. 2

При попытке запустить заполнение табличной части 1С 8.3 выдает ошибку «Тип не может быть выбран в запросе» (Рисунок 3).

Тип не может быть выбран

Рис. 3

Данная ошибка при выполнении операции в 1С возникла потому, что в таблице значений не указан тип колонки «Наименование».  

2. Исправление ошибки в 1С

Чтобы исправить ошибку, необходимо явно указать тип при добавлении колонки. Сделать это можно при помощи Описания типов. Укажем наименование строкового типа данных (Рисунок 4).

Тип выбран в запросе

Рис. 4

Также можно указать тип «СправочникСсылка.Производители», но тогда таблица значений не заполнится необходимыми данными, что, впрочем, можно исправить, воспользовавшись поиском по наименованию в справочнике, и подставив найденное значение в поле «Наименование» (Рисунок 5).

Исправление ошибки в 1С

Рис. 5

Но остановимся на типе «Строка».

При попытке выполнить код, возникает новая ошибка программы, говорящая о том, что нельзя сравнивать разные типы (Рисунок 6).

ошибки в 1С

Рис. 6 

3. Новое условие при выполнении запроса 1С

Вернемся к выполнению запроса 1С и изменим его, заменив жесткое сравнение на условие «Подобно».

Запрос примет следующий вид (Рисунок 7).

Новое условие 1С

Рис. 7

В результате мы получим список всей номенклатуры данных производителей (Рисунок 8).

при выполнении запроса 1С

Рис. 8

Специалист компании «Кодерлайн»

Айдар Фархутдинов

Понравилась статья? Поделить с друзьями:
  • Обнаружение и коррекция ошибок методы обнаружения ошибок
  • Обнаружены ошибки include измените includepath
  • Обнаружены ошибки error
  • Обнаружена следующая ошибка служба не запущена 0x80070426
  • Обнаружение и исправление ошибок реферат