News:

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

Main Menu

Постоянные ошибки неуникальности записей в файловых базах 1С (Linux, Proxmox)

Started by oermolaev, 09 January 2020, 18:13

Previous topic - Next topic

0 Members and 4 Guests are viewing this topic.

oermolaev

На разных машинах с Proxmox с виртуальными машинами KVM и LXC, на разных носителях: SSD и raid HDD, в разных файловых базах 1С, возникают одинаковые ошибки о неуникальности записей.  Типа таких:
Справочники. Номенклатура. Проверка уникальности записей
 В таблице Reference90 обнаружены неуникальные записи со значениями полей:
 Fld770 = 0
 ID = 90:B78BFAE35365552811EA32EA557A6BB6
Как при работе через тонкий клиент в опубликованной через apache базе, так и при работе через толстый клиент.

Файловая система хоста - ZFS, гостей ext4.

Гуглом подобных ошибок не нашел.

Помогите разобраться.

Уваров А.С.

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

Сделайте тестирование и исправление к конфигураторе и посмотрите что именно вам там напишет.

oermolaev

Quote from: Уваров А.С. on 10 January 2020, 00:03Сделайте тестирование и исправление к конфигураторе и посмотрите что именно вам там напишет.

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

oermolaev

Хочу добавить что эти системы эксплуатировались весь 2019 год и раньше таких ошибок не наблюдалось. Это началось или с очередным обновлением платформы, или обновлением системы, или со сменой конфигурации (с КА на БП) в декабре 2019 года.

Уваров А.С.

Reference90 - это справочник Номенклатура, далее ищите объект по его ID (есть в тексте ошибки) и смотрите что этот такое, а потом будем думать что с ним делать.

В архиве наша подборка обработок для работы с GIUD в 1С.

oermolaev

Quote from: Уваров А.С. on 10 January 2020, 08:10Reference90 - это справочник Номенклатура, далее ищите объект по его ID (есть в тексте ошибки) и смотрите что этот такое, а потом будем думать что с ним делать.
Эта ошибка - только частный случай. Они происходят регулярно во время работы. Вот сегодня например:
Тестирование начато
Справочники. КлючевыеОперации. Проверка уникальности записей
 В таблице Reference77 обнаружены неуникальные записи со значениями полей:
 ID = 77:F287AE203C5585B911EA35D12DFCD698
 Неуникальность записей устранена
Документы. ПоступлениеНаРасчетныйСчет. Проверка уникальности записей
 В таблице Document321 обнаружены неуникальные записи со значениями полей:
 Fld770 = 0
 ID = 321:6689AE203C5585B911EA3694AD848B36
 Неуникальность записей устранена
Документы. ПоступлениеНаРасчетныйСчет. Проверка уникальности записей
 В таблице Document321 обнаружены неуникальные записи со значениями полей:
 Fld770 = 0
 ID = 321:C595AE203C5585B911EA36975BC55836
 Неуникальность записей устранена
Проверка логической целостности. Документ.ПоступлениеНаРасчетныйСчет.ТабличнаяЧасть.РасшифровкаПлатежа Поступление на расчетный счет 00БП-000015 от 13.01.2020 16:38:38
  ОбщийРеквизит.ОбластьДанныхОсновныеДанные = 0
 Нарушена нумерация строк табличной части. Нумерация восстановлена.
Проверка логической целостности. Документ.ПоступлениеНаРасчетныйСчет.ТабличнаяЧасть.РеквизитыКонтрагента Поступление на расчетный счет 00БП-000015 от 13.01.2020 16:38:38
  ОбщийРеквизит.ОбластьДанныхОсновныеДанные = 0
 Нарушена нумерация строк табличной части. Нумерация восстановлена.
Проверка логической целостности. Документ.ПоступлениеНаРасчетныйСчет.ТабличнаяЧасть.РасшифровкаПлатежа Поступление на расчетный счет 00БП-000018 от 13.01.2020 16:38:41
  ОбщийРеквизит.ОбластьДанныхОсновныеДанные = 0
 Нарушена нумерация строк табличной части. Нумерация восстановлена.
Проверка логической целостности. Документ.ПоступлениеНаРасчетныйСчет.ТабличнаяЧасть.РеквизитыКонтрагента Поступление на расчетный счет 00БП-000018 от 13.01.2020 16:38:41
  ОбщийРеквизит.ОбластьДанныхОсновныеДанные = 0
 Нарушена нумерация строк табличной части. Нумерация восстановлена.
Журналы документов. Деньги. Проверка уникальности записей
 В таблице DocumentJournal26248 обнаружены неуникальные записи со значениями полей:
 Fld770 = 0
 Document = 321:6689AE203C5585B911EA3694AD848B36
 Неуникальность записей устранена
Журналы документов. Деньги. Проверка уникальности записей
 В таблице DocumentJournal26248 обнаружены неуникальные записи со значениями полей:
 Fld770 = 0
 Document = 321:C595AE203C5585B911EA36975BC55836
 Неуникальность записей устранена
Журналы документов. ЖурналОпераций. Проверка уникальности записей
 В таблице DocumentJournal11584 обнаружены неуникальные записи со значениями полей:
 Fld770 = 0
 Document = 321:6689AE203C5585B911EA3694AD848B36
 Неуникальность записей устранена
Журналы документов. ЖурналОпераций. Проверка уникальности записей
 В таблице DocumentJournal11584 обнаружены неуникальные записи со значениями полей:
 Fld770 = 0
 Document = 321:C595AE203C5585B911EA36975BC55836
 Неуникальность записей устранена
Тестирование закончено

Есть подозрения на файловую систему ZFS. Не знаю на что ещё думать.

Уваров А.С.

У вас там одни и те же фигуранты. Выясните с помощью обработок, что я вам выложил, что за объекты с ID вызывающими ошибку и не являются ли они чьими нибудь дублями на самом деле.

Второй вопрос - размер базы? Есть ли в ней доработки?

oermolaev

Ответ на второй вопрос: в данном случае файл 1Cv8.1CD 1,2Гб, конфигурация типовая - Бухгалтерия предприятия, редакция 3.0 (3.0.75.37), без доработок. Платформа 8.3.16.1063
Первый вопрос не осилил: при попытке добавить внешнюю обработку получаю сообщение
QuoteНевозможно подключить дополнительную обработку из файла.
Возможно, она не подходит для этой версии программы.

Техническая информация:
Метод объекта не обнаружен (СведенияОВнешнейОбработке)
Добавил обработки через Конфигуратор, но в режиме Предприятия их всё равно не видно..

Таким образом, нужны дополнительные инструкции по использованию обработок.

Уваров А.С.


oermolaev

Ок, понятно. Вот новый список ошибок на сегодняшнее утро:
QuoteТестирование начато

Документы. ПоступлениеНаРасчетныйСчет. Проверка уникальности записей

   В таблице Document321 обнаружены неуникальные записи со значениями полей:

      Fld770 = 0

      ID = 321:7692AE203C5585B911EA3761F5F191FC

Документы. ПоступлениеНаРасчетныйСчет. Проверка уникальности записей

   В таблице Document321.VT8629

Документы. ПоступлениеНаРасчетныйСчет. Проверка уникальности записей

   В таблице Document321.VT8653

Проверка логической целостности. Документ.ПоступлениеНаРасчетныйСчет.ТабличнаяЧасть.РасшифровкаПлатежа Поступление на расчетный счет 00БП-000029 от 14.01.2020 17:10:25

  ОбщийРеквизит.ОбластьДанныхОсновныеДанные = 0

   Нарушена нумерация строк табличной части.

Проверка логической целостности. Документ.ПоступлениеНаРасчетныйСчет.ТабличнаяЧасть.РеквизитыКонтрагента Поступление на расчетный счет 00БП-000029 от 14.01.2020 17:10:25

  ОбщийРеквизит.ОбластьДанныхОсновныеДанные = 0

   Нарушена нумерация строк табличной части.

Проверка логической целостности. Документ.ПоступлениеНаРасчетныйСчет.ТабличнаяЧасть.РасшифровкаПлатежа Поступление на расчетный счет 00БП-000030 от 14.01.2020 17:10:26

  ОбщийРеквизит.ОбластьДанныхОсновныеДанные = 0

   Нарушена нумерация строк табличной части.

Проверка логической целостности. Документ.ПоступлениеНаРасчетныйСчет.ТабличнаяЧасть.РеквизитыКонтрагента Поступление на расчетный счет 00БП-000030 от 14.01.2020 17:10:26

  ОбщийРеквизит.ОбластьДанныхОсновныеДанные = 0

   Нарушена нумерация строк табличной части.

Документы. СписаниеСРасчетногоСчета. Проверка уникальности записей

   В таблице Document348 обнаружены неуникальные записи со значениями полей:

      Fld770 = 0

      ID = 348:7692AE203C5585B911EA3761F5F191DE

Документы. СписаниеСРасчетногоСчета. Проверка уникальности записей

   В таблице Document348.VT9644

Проверка логической целостности. Документ.СписаниеСРасчетногоСчета.ТабличнаяЧасть.РеквизитыКонтрагента Списание с расчетного счета 00БП-000029 от 14.01.2020 17:10:10

  ОбщийРеквизит.ОбластьДанныхОсновныеДанные = 0

   Нарушена нумерация строк табличной части.

Проверка логической целостности. Документ.СписаниеСРасчетногоСчета.ТабличнаяЧасть.РеквизитыКонтрагента Списание с расчетного счета 00БП-000030 от 14.01.2020 17:10:11

  ОбщийРеквизит.ОбластьДанныхОсновныеДанные = 0

   Нарушена нумерация строк табличной части.

Журналы документов. Деньги. Проверка уникальности записей

   В таблице DocumentJournal26248 обнаружены неуникальные записи со значениями полей:

      Fld770 = 0

      Document = 321:7692AE203C5585B911EA3761F5F191FC

Журналы документов. Деньги. Проверка уникальности записей

   В таблице DocumentJournal26248 обнаружены неуникальные записи со значениями полей:

      Fld770 = 0

      Document = 348:7692AE203C5585B911EA3761F5F191DE

Журналы документов. ЖурналОпераций. Проверка уникальности записей

   В таблице DocumentJournal11584 обнаружены неуникальные записи со значениями полей:

      Fld770 = 0

      Document = 321:7692AE203C5585B911EA3761F5F191FC

Журналы документов. ЖурналОпераций. Проверка уникальности записей

   В таблице DocumentJournal11584 обнаружены неуникальные записи со значениями полей:

      Fld770 = 0

      Document = 348:7692AE203C5585B911EA3761F5F191DE

Тестирование закончено
Какую именно обработку из трёх нужно использовать? Какова методика?

Уваров А.С.

Для начала возьмите ПоискСозданиеОбъектаПоЕгоИД.epf и выясните по ID какие именно записи являются неуникальными.

oermolaev

Вот например найдена ссылка на объект и при попытке её открыть сообщение об ошибке:



Дальнейшие действия?

Уваров А.С.

Документ открыт другим сеансом. Смотрите в журнале регистрации кем.

oermolaev

Это же ошибка? Документ ведь не может быть открыт другим сеансом, если с программой работаю только я на тестовой машине? В  журнале регистрации записей об этом событии я не увидел. А сам документ через некоторое время всё же открывается. Например в настоящее время. Однако что с этим делать?

Уваров А.С.

Quote from: oermolaev on 15 January 2020, 16:16Это же ошибка? Документ ведь не может быть открыт другим сеансом, если с программой работаю только я на тестовой машине?

А вот это уже интереснее. Вид доступа какой? Тонкий клиент?


Уваров А.С.

А вот это странно, если бы был веб-клиент или тонкий через веб-сервер, то такое поведение было бы понятно, но чистый тонкий клиент так себя вести не должен. Возможно дело действительно в ZFS, точнее ее фишках, скорее всего это может быть что-то связанное со снапшотами.


Уваров А.С.

Quote from: oermolaev on 09 January 2020, 18:13Как при работе через тонкий клиент в опубликованной через apache базе

Стоп, вы же сами написали по веб-сервер. Тогда понятно. Блокировки ставит веб-сервер. Ограничьте его одним рабочим процессом.

mpm_prefork.conf

StartServers 1
MinSpareServers 1
MaxSpareServers 1

oermolaev

Я подтверждаю про веб-сервер, и настройки в файле mpm_prefork.conf, а затем и в  mpm_event.conf, , mpm_worker.conf как рекомендовал witaliy были сделаны в надежде исправить ситуацию.
Но сейчас я играюсь с копией базы на локальном компьютере с файловой системой EXT4 в тонком клиенте (выбран автоматически), но могу открыть и в толстом клиенте, если в этом есть смысл.

Уваров А.С.

Если такая дичь вылетает на локальной копии базы, то как вариант действительно что-то с базой. Можно попробовать выгрузить данные в аналогичную чистую базу через XML.

oermolaev

Выгрузил данные в чистую базу, предварительно выполнив операцию по тестированию и исправлению старой базы.
В итоге загрузилась она со следующими ошибками:
QuoteНачало загрузки: 16.01.2020 23:07:00
При загрузке объекта КонстантаМенеджерЗначения.ДатаЗагрузкиКлассификатораОшибокКриптографии(Константа менеджер значения: Дата загрузки классификатора ошибок криптографии) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Нарушение прав доступа!
При загрузке объекта <>(План обмена объект: Автономная работа) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: Миграция приложений) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: Мобильная бухгалтерия) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: Мобильное приложение предприниматель) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: 1С-КАМИН:Зарплата, редакция 5.0) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта Бухгалтерия предприятия, редакция 3.0(План обмена объект: Зарплата и управление персоналом, редакция 3) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ПриЗаписи': {ОбщийМодуль.ОбменДаннымиЗарплатаКадры.Модуль(38)}: Ошибка при вызове метода контекста (ЭтотУзел): Найдено более одной записи для узла ЭтотУзел
При загрузке объекта <>(План обмена объект: Розница, редакция 1.0) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: Розница, редакция 2.2) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: Обмен с подключаемым оборудованием Offline) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: Управление нашей фирмой, редакция 1) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: Управление торговлей, редакция 10.3) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: Управление торговлей, редакция 11) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: Обновление информационной базы) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта 1(План обмена объект: Обновление информационной базы) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "100000001" поля "Код" не уникально
При загрузке объекта 2(План обмена объект: Обновление информационной базы) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "200000001" поля "Код" не уникально
При загрузке объекта 3(План обмена объект: Обновление информационной базы) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "300000001" поля "Код" не уникально
При загрузке объекта 4(План обмена объект: Обновление информационной базы) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "400000001" поля "Код" не уникально
При загрузке объекта 5(План обмена объект: Обновление информационной базы) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "500000001" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: Полный) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: По организации) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: (Не используется) Обмен "Розница" - "Бухгалтерия предприятия 2.0") возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: (Не используется) Обмен Розница, редакция 2.0 и Бухгалтерия предприятия, редакция 2.0) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: (не используется) Обмен управление небольшой фирмой бухгалтерия 2.0) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: (Не используется) Обмен Управление торговлей и Бухгалтерия предприятия, редакция 2.0) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: (Не используется) Обмен Управление торговлей и Бухгалтерия предприятия, редакция 2.0 (фоновый)) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: Удалить Обмен Управление торговлей, редакция 11.0 и Бухгалтерия предприятия, редакция 2.0) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: (не используется) Полный) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
При загрузке объекта <>(План обмена объект: (не используется) По организации) возникла ошибка:
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(227)}: Ошибка при вызове метода контекста (Записать): Значение "" поля "Код" не уникально
Загружено объектов: 146 117
Окончание загрузки: 16.01.2020 23:20:36
Загрузка данных успешно завершена
Нужны дальнейшие инструкции что с этим делать.

Уваров А.С.

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


oermolaev

Quote from: Уваров А.С. on 15 January 2020, 17:25Ограничьте его одним рабочим процессом.

mpm_prefork.conf

В поисках истины нашел в официальной документации что
QuoteПри использовании веб-сервера Apache версии 2.2 и выше, под управлением ОС Linux, рекомендуется использовать модуль мультипроцессной обработки worker
QuoteДля управления количеством рабочих процессов следует установить параметр ServerLimit 1 в разделе настроек модуля worker...

its.1c.ru

По умолчанию же, используется event (который конфликтует и с worker, и с prefork)

Вопрос: Почему вы предлагаете использовать prefork?

oermolaev

И "ServerLimit 1" - это не тоже самое что "StartServers 1".
Установка параметра "ServerLimit 1" связана с другим параметром - "MaxRequestWorkers"
Как я понял - в соотношении 1 : 5.

Уваров А.С.

Quote from: oermolaev on 17 January 2020, 11:18Вопрос: Почему вы предлагаете использовать prefork?

Если кроме 1С там будет что-то еще - то это практически со 100% вероятностью будет обозначать prefork.

Quote from: oermolaev on 17 January 2020, 11:18По умолчанию же, используется event

event работает примерно также как worker, и оба они, в отличие от prefork обрабатывают несколько соединений в одном процессе. Это увеличивает быстродействие, экономит ресурсы, но применительно к 1С все это довольно сомнительно. Особенно если мы в итоге ограничиваем его одним рабочим процессом.


ServerLimit - это вообще другой параметр и разработчики Apache трогать его без особой необходимости не рекомендуют: https://httpd.apache.org/docs/current/mod/mpm_common.html




oermolaev

Quote from: Уваров А.С. on 17 January 2020, 14:20работчики Apache трогать его без особой необходимости не рекомендуют

ну тут придётся выбрать кто из разработчиков нам ближе в данном случае, 1С или Apache  :)

Уваров А.С.

Что касается worker, то тут я соглашусь, подправил статьи для соответствия "политике партии", хотя на простых внедрениях это не играет никакой роли.

А что касается ServerLimit, то здесь лучше послушать что говорят в Apache, потому как наша цель - один рабочий процесс. Поэтому

StartServers 1
MinSpareThreads 1
MaxSpareThreads 1

если брать worker или event, для prefork настройки выше, выглядит более корректно.

Фактически эти настройки значат:

Запускать 1 процесс
Минимальное количество процессов 1
Максимальное количество процессов 1

oermolaev

Ну что ж, из хороших новостей: похоже что ни zfs, ни apache не являются причинами ошибок. Выполнен перенос на Proxmox с EXT4 LVM, выполнены настройки mpm worker в соответствии с рекомендациями. Но ошибки повторяются. В частности при заполнении номенклатуры, примерно на каждой десятой позиции:
QuoteТестирование начато
Справочники. Номенклатура. Проверка уникальности записей
   В таблице Reference90 обнаружены неуникальные записи со значениями полей:
      Fld770 = 0
      ID = 90:5E96EE3CCA89973B11EA39301CD38EEA
   Неуникальность записей устранена
Справочники. Номенклатура. Проверка уникальности записей
   В таблице Reference90 обнаружены неуникальные записи со значениями полей:
      Fld770 = 0
      ID = 90:5E96EE3CCA89973B11EA39301CD38EF4
   Неуникальность записей устранена
Справочники. Номенклатура. Проверка уникальности записей
   В таблице Reference90 обнаружены неуникальные записи со значениями полей:
      Fld770 = 0
      ID = 90:5E96EE3CCA89973B11EA39301CD38EFE
   Неуникальность записей устранена
Тестирование закончено

oermolaev

Кстати, упустил один момент, только сейчас обратил внимание информацию на https://releases.1c.ru касательно релиза 3.0.75.37 моей конфигурации:
QuoteВнимание! Текущая версия конфигурации "Бухгалтерия предприятия" предназначена для использования только на версии технологической платформы 1С:Предприятие 8.3.15.1830.
У меня же релиз платформы 8.3.16.1063.
На сколько это может быть важно?

Уваров А.С.

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

QuoteТекущая версия конфигурации "Бухгалтерия предприятия" предназначена
для использования с версией системы 1С:Предприятие 8.3 не ниже 8.3.15.1747.

Рекомендуется использовать версию 1С:Предприятие 8.3 не ниже 8.3.15.1778.

Хотя многие уже успели обновиться до 16-й платформы, пока не жаловались.

Уваров А.С.

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

ival

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

Загрузил конфигурацию в любую СУБД (например в ms sql). Сделал проверку базы, перестроил индексы, обновил статистику. После этого начал смотреть. Если ошибки полезут, то запросами сделал выборку по таблицам и записям в которых ошибки. В конце концов из базы хотяб селектами можно вычленять и смотреть или ещё лучше запустить профайлер и найти какие запросы делаются, чтобы понять что искать.

Уваров А.С.

Определенная логика в этом есть, единственное - не трогать данные средствами SQL, т.е. работать только на чтение, иначе есть шанс наглухо убить базу на логическом уровне. Зато можно быстро узнать что такое Document321 Fld770.

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

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