Ошибка "Запись не верна! Набор записей, принадлежащий менеджеру, должен содержать ровно 1 запись" в Альфа-Авто 5 и методы ее устранения

28.12.17

Задачи пользователя - Адаптация типовых решений

Сегодня посреди рабочего дня база отказалась впускать пользователей. При попытке запуска вываливалась ошибка "Запись не верна! Набор записей, принадлежащий менеджеру, должен содержать ровно 1 запись". При этом активные сеансы работали без проблем. Саму ошибку можно было увидеть не всегда, чаще всего она пряталась за баннером с машинками.

База крутится на  PostgreSQL. Платформа 8.3.10.2561

Первым делом, когда пользователи закончили работу, я сделала бэкапы. Потом запустила ТИИ, которое ошибок не обнаружило. Результата не было.  Не помогла также и выгрузка-загрузка в файловый вариант базы, и проверка файлового варианта средствами chdbf. Отладчиком нашла место, где 1с вываливается.  Этим местом оказалась обработка "Избранное" . Закомментировала проблемное место и о чудо, база запустилась. Пошла смотреть внутрь регистра, а там творился полный хаос. Много-много одинаковых записей в регистре, где все записи должны быть уникальными. Ручками удалила их.  После убрала комменты с проблемного места в модуле, попробовала запустить и все заработало. 

Вот то место, где 1С вываливалась. Модуль объекта обработки "Избранное"

// Инициализация избранного (получение данных из регистра сведений "КартинкиИФайлы")
Процедура ИнициализироватьИзбранное() Экспорт
	РегКартинкиИФайлы = РегистрыСведений.КартинкиИФайлы.СоздатьМенеджерЗаписи();
	РегКартинкиИФайлы.Объект = ПараметрыСеанса.Пользователь;
	РегКартинкиИФайлы.Идентификатор = ИдентификаторИзбранное;
	РегКартинкиИФайлы.Прочитать();
	ДеревоИзбранного = РегКартинкиИФайлы.Данные.Получить(); // проблема была вот тут
	Если ТипЗнч(ДеревоИзбранного) <> Тип("ДеревоЗначений") Тогда
		ДеревоИзбранного = Новый ДеревоЗначений;
	КонецЕсли;
	
	Если ДеревоИзбранного.Колонки.Количество()=0 Тогда
		ДеревоИзбранного.Колонки.Добавить("Представление");
		ДеревоИзбранного.Колонки.Добавить("ТипОбъекта");
		ДеревоИзбранного.Колонки.Добавить("ОткрытьПриЗапуске");
		ДеревоИзбранного.Колонки.Добавить("ВидОбъекта");
		ДеревоИзбранного.Колонки.Добавить("ЭкземплярОбъекта");
		ДеревоИзбранного.Колонки.Добавить("ФормаОбъекта");
	КонецЕсли;
	Если ДеревоИзбранного.Строки.Количество()=0 Тогда
		НовыйЭлемент=ДеревоИзбранного.Строки.Добавить();
		НовыйЭлемент.Представление="Избранное";
		НовыйЭлемент.ТипОбъекта="Избранное";
	КонецЕсли;	
КонецПроцедуры


Надеюсь, что мой горький опыт кому-то поможет.

И вопрос к знатокам: какова может быть причина такой хвори? Именно с данной базой ни каких работ на момент появления ошибки я не производила, но приблизительно в это время пыталась развернуть в копию бэкап этой базы средствами postgreSQL, однако, сделать этого не получилось. Могло ли это стать причиной глюка?  Ниже кусок лога в тот момент, когда все произошло 

 

2017-12-27 15:51:30 YEKT DETAIL:  Process 36140 waits for ShareLock on relation 14325107 of database 2530027.
2017-12-27 15:51:30 YEKT STATEMENT:  create unique index _inforg7985_bydims_nn on _inforg7985 (_Fld7986, _Fld7987); alter table _inforg7985 cluster on _inforg7985_bydims_nn;
2017-12-27 15:51:30 YEKT ERROR:  canceling autovacuum task
2017-12-27 15:51:30 YEKT CONTEXT:  automatic analyze of table "test.public._inforg7985"
2017-12-27 16:05:21 YEKT ERROR:  type "mchar" already exists
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE TYPE mchar;
    
    
    
2017-12-27 16:05:21 YEKT ERROR:  function "mchar_in" already exists with same argument types
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE FUNCTION mchar_in(cstring) RETURNS mchar
        LANGUAGE c IMMUTABLE STRICT
        AS '$libdir/mchar', 'mchar_in';
    
2017-12-27 16:05:21 YEKT ERROR:  function "mchar_out" already exists with same argument types
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE FUNCTION mchar_out(mchar) RETURNS cstring
        LANGUAGE c IMMUTABLE STRICT
        AS '$libdir/mchar', 'mchar_out';
    
    
    
2017-12-27 16:05:21 YEKT ERROR:  function "mchar_recv" already exists with same argument types
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE FUNCTION mchar_recv(internal) RETURNS mchar
        LANGUAGE c IMMUTABLE STRICT
        AS '$libdir/mchar', 'mchar_recv';
    
    
    
2017-12-27 16:05:21 YEKT ERROR:  function "mchar_send" already exists with same argument types
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE FUNCTION mchar_send(mchar) RETURNS bytea
        LANGUAGE c IMMUTABLE STRICT
        AS '$libdir/mchar', 'mchar_send';
    
    
    
2017-12-27 16:05:21 YEKT ERROR:  function "mchartypmod_in" already exists with same argument types
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE FUNCTION mchartypmod_in(cstring[]) RETURNS integer
        LANGUAGE c IMMUTABLE STRICT
        AS '$libdir/mchar', 'mchartypmod_in';
    
    
    
2017-12-27 16:05:21 YEKT ERROR:  function "mchartypmod_out" already exists with same argument types
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE FUNCTION mchartypmod_out(integer) RETURNS cstring
        LANGUAGE c IMMUTABLE STRICT
        AS '$libdir/mchar', 'mchartypmod_out';
    
    
    
2017-12-27 16:05:21 YEKT ERROR:  type "mchar" already exists
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE TYPE mchar (
        INTERNALLENGTH = variable,
        INPUT = mchar_in,
        OUTPUT = mchar_out,
        RECEIVE = mchar_recv,
        SEND = mchar_send,
        TYPMOD_IN = mchartypmod_in,
        TYPMOD_OUT = mchartypmod_out,
        ALIGNMENT = int4,
        STORAGE = extended
    );
    
    
    
2017-12-27 16:05:21 YEKT ERROR:  type "mvarchar" already exists
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE TYPE mvarchar;
    
    
    
2017-12-27 16:05:21 YEKT ERROR:  function "mvarchar_in" already exists with same argument types
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE FUNCTION mvarchar_in(cstring) RETURNS mvarchar
        LANGUAGE c IMMUTABLE STRICT
        AS '$libdir/mchar', 'mvarchar_in';
    
    
    
2017-12-27 16:05:21 YEKT ERROR:  function "mvarchar_out" already exists with same argument types
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE FUNCTION mvarchar_out(mvarchar) RETURNS cstring
        LANGUAGE c IMMUTABLE STRICT
        AS '$libdir/mchar', 'mvarchar_out';
    
    
    
2017-12-27 16:05:21 YEKT ERROR:  function "mvarchar_recv" already exists with same argument types
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE FUNCTION mvarchar_recv(internal) RETURNS mvarchar
        LANGUAGE c IMMUTABLE STRICT
        AS '$libdir/mchar', 'mvarchar_recv';
    
    
    
2017-12-27 16:05:21 YEKT ERROR:  function "mvarchar_send" already exists with same argument types
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE FUNCTION mvarchar_send(mvarchar) RETURNS bytea
        LANGUAGE c IMMUTABLE STRICT
        AS '$libdir/mchar', 'mvarchar_send';
    
    
    
2017-12-27 16:05:21 YEKT ERROR:  type "mvarchar" already exists
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE TYPE mvarchar (
        INTERNALLENGTH = variable,
        INPUT = mvarchar_in,
        OUTPUT = mvarchar_out,
        RECEIVE = mvarchar_recv,
        SEND = mvarchar_send,
        TYPMOD_IN = mchartypmod_in,
        TYPMOD_OUT = mchartypmod_out,
        ALIGNMENT = int4,
        STORAGE = extended
    );
    
    
    
2017-12-27 16:05:21 YEKT ERROR:  function "binrowver" already exists with same argument types
2017-12-27 16:05:21 YEKT STATEMENT:  CREATE FUNCTION binrowver(p1 integer) RETURNS bytea
        LANGUAGE plpgsql
        AS $$
     DECLARE
     bytearea BYTEA;
     BEGIN
     bytearea := SET_BYTE('\\000\\000\\000\\000\\000\\000\\000\\000'::bytea, 4, MOD(P1 / 16777216, 256));
     bytearea := SET_BYTE(bytearea, 5, MOD(P1 / 65536, 256));
     bytearea := SET_BYTE(bytearea, 6, MOD(P1 / 256, 256));
     bytearea := SET_BYTE(bytearea, 7, MOD(P1, 256));
     RETURN bytearea;
     END;$$;    
    
     

 

ошибка альфа-авто

См. также

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    5628    14    5    

24

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3895    11    0    

29

Адаптация типовых решений Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    5077    dimanich70    15    

21

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    5400    dimanich70    9    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. mariyanna 03.04.18 10:10 Сейчас в теме
Какой регистр чистили? Такая же ошибка и тоже делали в Постгри востановление копии.. Только конфигурация КА 2.4.
2. MrsMastersan 71 04.04.18 20:14 Сейчас в теме
(1)в публикации же сказано РегистрыСведений.КартинкиИФайлы
3. Crazy_Max 83 03.08.18 08:11 Сейчас в теме
А у меня та же ошибка вылазит, когда я пытаюсь создать запись в совершенно новом самодельном регистре! Вообще не могу понять, как эту ошибку победить. ТИИ, Выгрузка-загрузка (работаю в файловом варианте) не помогают. Не работает даже создание записи стандартным добавлением (Зеленый плюсик над таблицей в форме)в стандартной форме регистра сведений. Вылетает эта ошибка. У кого есть идеи?
4. MrsMastersan 71 03.08.18 10:25 Сейчас в теме
(3) А какая структура регистра? Сколько измерений?
6. Crazy_Max 83 06.08.18 11:06 Сейчас в теме
(4) Измерение всего лишь одно, ссылка на справочник. Регистр периодический. От периодичности ошибка не зависит. Ресурсы все строкового типа ограниченной длины и даты.
5. Crazy_Max 83 04.08.18 19:36 Сейчас в теме
Измерение всего лишь одно, ссылка на справочник. Регистр периодический. От периодичности ошибка не зависит. Ресурсы все строкового типа ограниченной длины и даты.
7. DmitriyKB 27.02.20 08:58 Сейчас в теме
Могу предположить что при разворачивании бэкапа в новую базу был неправильный аргумент вместо clean использовался Create: было так pg_restore -U postgres -C -d ..., а нужно "с" маленькое, т.е. вот так pg_restore -U postgres -c -d ...
Оставьте свое сообщение