Имя: Пароль:
1C
1С v8
РИБ. Ошибка преобразования данных XML
,
0 Денис Прог
 
30.03.18
12:56
Добрый день. Есть РИБ с двумя базами. При выгрузки из центральной в перефирийную очень часто валится ошибка:
Ошибка при чтении изменений при обмене РИБ:  Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка преобразования данных XML: (тут путь к файлу и номер строки с ошибкой).
По строке искал ошибку, там все как и у других элементов, которые уже были прочитаны.
Если снимать регистрацию, и делать поменьше объем данных - обмен успешно завершается.
Платформа 8.3.10, конфигурация Комплексная автоматизация, редакция 1.1 (1.1.19.1).
1 Сергиус
 
30.03.18
13:01
(0)Отладчиком смотреть в каком месте ошибка, бывает что проблема в данных - например какой-ть кривой символ в наименовании элемента.
2 Денис Прог
 
30.03.18
13:07
Сергиус, в отладчике падает при попытки чтения файла.
Всегда разные строки, ну и он даже на пустых валится.
3 Сергиус
 
30.03.18
13:09
(2)А обмен через сетевой каталог или ftp?
4 Денис Прог
 
30.03.18
13:10
Сергиус, через локальную папку
5 Stim
 
30.03.18
13:13
а если выгрузить через универсальный обмен хмл по узлу - что скажет?
6 Денис Прог
 
30.03.18
13:20
Stim, имеете ввиду обработку "Универсальный обмен данными в формате XML?"
7 Stim
 
30.03.18
13:21
да
8 Денис Прог
 
30.03.18
18:00
В общем сама ошибка:

Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка преобразования данных XML: [sfile://C:/Users/Администратор/AppData/Local/Temp/v8_DA45_da.xml][42,6]
Чтение данных из файла обмена завершено с ошибками!

и сам файл

<v8msg:Message xmlns:v8msg="http://v8.1c.ru/messages">;
<v8msg:Header>
<v8msg:ExchangePlan>Полный</v8msg:ExchangePlan>
<v8msg:To>МУР</v8msg:To>
<v8msg:From>МСК</v8msg:From>
<v8msg:MessageNo>49</v8msg:MessageNo>
<v8msg:ReceivedNo>50</v8msg:ReceivedNo>
</v8msg:Header>
<v8msg:Body>
<v8de:Changes xmlns:v8="http://v8.1c.ru/data"; xmlns:v8de="http://v8.1c.ru/dataexchange/2005/02"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;
<v8de:Signature>f24c4ec6-1e59-47a0-9736-8c823eda0d28</v8de:Signature>
<v8de:Config xmlns:v8md="http://v8.1c.ru/metadata/2005/08">;
<v8de:Version>216.0</v8de:Version>
<v8de:Digest1>00000000000000000000000000000000</v8de:Digest1>
<v8de:Digest2 v2="e9d50d3997192529190612be7d91764c">09b8f5839afdd724be3d85­315771472b</v8de:Digest2>
</v8de:Config>
<v8de:Nodes>
<v8de:Node>
<v8de:DeletionMark>false</v8de:DeletionMark>
<v8de:Code>МСК</v8de:Code>
<v8de:Description>Москва</v8de:Description>
<v8de:УзелОбменаПоУмолчанию>00000000-0000-0000-0000-000000000000</v8de:УзелОбменаПоУмолчанию>
<v8de:Организации/>
</v8de:Node>
<v8de:Node>
<v8de:DeletionMark>false</v8de:DeletionMark>
<v8de:Code>МУР</v8de:Code>
<v8de:Description>Мурманск</v8de:Description>
<v8de:УзелОбменаПоУмолчанию>00000000-0000-0000-0000-000000000000</v8de:УзелОбменаПоУмолчанию>
<v8de:Организации/>
</v8de:Node>
</v8de:Nodes>
<v8de:Data>
<CatalogObject.Контрагенты>
<Ref>f1a02159-fc90-11db-9488-00016cb2604d</Ref>
<IsFolder>false</IsFolder>
<DeletionMark>false</DeletionMark>
<Parent>804b8942-d6d3-11e5-a248-00304864d125</Parent>
Код
ЮЮ0001751
Показать полностью

<Description>Поставщики</Description>
<ДокументУдостоверяющийЛичность/>
<ДополнительноеОписание/>
<ГоловнойКонтрагент>f1a02159-fc90-11db-9488-00016cb2604d</ГоловнойКонтрагент>
<ИсточникИнформацииПриОбращении>00000000-0000-0000-0000-000000000000</ИсточникИнформацииПриОбращении>
<КодПоОКПО/>
<Комментарий/>
<ИНН/>
<КПП/>
<ОсновноеКонтактноеЛицо>00000000-0000-0000-0000-000000000000</ОсновноеКонтактноеЛицо>
<ОсновнойБанковскийСчет>00000000-0000-0000-0000-000000000000</ОсновнойБанковскийСчет>
<ОсновнойВидДеятельности>00000000-0000-0000-0000-000000000000</ОсновнойВидДеятельности>
<ОсновнойДоговорКонтрагента>00000000-0000-0000-0000-000000000000</ОсновнойДоговорКонтрагента>
<ОсновнойМенеджерПокупателя>00000000-0000-0000-0000-000000000000</ОсновнойМенеджерПокупателя>
<Покупатель>false</Покупатель>
<Поставщик>false</Поставщик>
<РасписаниеРаботыСтрокой/>
<СрокВыполненияЗаказаПоставщиком>0</СрокВыполненияЗаказаПост­авщиком>
<ЮрФизЛицо/>
<НеЯвляетсяРезидентом>false</НеЯвляетсяРезидентом>
<ОКОПФ>00000000-0000-0000-0000-000000000000</ОКОПФ>
<Регион>00000000-0000-0000-0000-000000000000</Регион>
<ГруппаДоступаКонтрагента>00000000-0000-0000-0000-000000000000</ГруппаДоступаКонтрагента>
<Импортер>false</Импортер>
<Экпортер>false</Экпортер>
<ОсновнаяЛицензия>00000000-0000-0000-0000-000000000000</ОсновнаяЛицензия>
<Алкоголь>false</Алкоголь>
<Производитель>false</Производитель>
<ДопКод>0 </ДопКод>
<ЭлементСинхронизирован>false</ЭлементСинхронизирован>
<КодСтраны/>
<ВнутреннийКонтрагент>false</ВнутреннийКонтрагент>
<НаличиеФайлов>false</НаличиеФайлов>
<ОГРН/>
<ОбособленноеПодразделение>false</ОбособленноеПодразделение>­
<Проверен>false</Проверен>
<ПроверенСтатус/>
<ОтветственныйПользователь>00000000-0000-0000-0000-000000000000</ОтветственныйПользователь>
<СсылкаФизЛицо>00000000-0000-0000-0000-000000000000</СсылкаФизЛицо>
<ИдентификаторУчастникаЭДО/>
<УзелОбменаПоУмолчанию>00000000-0000-0000-0000-000000000000</УзелОбменаПоУмолчанию>
<ВидыДеятельности/>
<МенеджерыПокупателя/>
<Обмен/>
<Файлы/>
</CatalogObject.Контрагенты>
</v8de:Data>
</v8de:Changes>
</v8msg:Body>
</v8msg:Message>

не пойму что тут может быть не так на 42 строчке с 6 символом?
9 Денис Прог
 
30.03.18
18:01
42 строка здесь  <ДополнительноеОписание/>
10 Мимохожий Однако
 
30.03.18
18:16
Не обновилась периферийная база. Отключи сценарии автоматического обмена пакетами и вручную обнови.
11 Cyberhawk
 
30.03.18
18:26
Как определил, на какой файл ругается?
12 Сергиус
 
30.03.18
19:01
(9)В базе отсутствует поле ДополнительноеОписание, поэтому совет из (10)
13 Денис Прог
 
02.04.18
09:28
(10) Cf основной выгрузил в перефирийную. Реквизиты полностью соответствуют, к тому же какой то контрагент выгружается, а какой то нет. Ошибки постоянно в разных полях, но это не могут быть данные, так как там обычное слова по типу "Поставщик" и тд. Либо пустая ссылка.
14 Денис Прог
 
02.04.18
09:28
(12) Это поле есть. Конфы полностью идентичные, так как я вручную залил cf основной в перефирийную
15 Денис Прог
 
02.04.18
09:30
(11) Ну в ошибке же он показывает путь к временному файлу, который читает. И сообщения, которые записывает, кладет в папку, которую я указал.
16 Галахад
 
гуру
02.04.18
09:41
Гм. Может база того. Этого.
17 hhhh
 
02.04.18
09:49
(15) на пустых и должен валиться, там проверка обычно на заполненность, если пусто, то валится. Например валюта не указана или еще что-то.
18 Cyberhawk
 
02.04.18
09:52
(15) Так это разные файлы
19 Serg_1960
 
02.04.18
09:58
Пора бы уже давно привыкнуть, что платформа иногда сама ошибается, указывая ошибку. Скорее всего в этой ошибке не место возникновения ошибки, а следствие ранее возникшей ошибки.
Вы спросите "в чем первопричина?" - честно скажу: "Не знаю!".
Проверка диска, переустановка платформу, тестирование базы - всё это по любому делать нужно. Но проще и быстрее выгрузить базу в DT, загрузить в чистую базу на другом компьютере и повторить приём сообщения обмена там.
Т.е. другими словами, если вы добьётесь повторяемости ошибки - то это будет важный признак установления первопричины.
20 Денис Прог
 
02.04.18
10:11
(17) Так он валится на стадии чтения самого файла, то есть там еще не доходит до проверки заполненности и тд.
21 Денис Прог
 
02.04.18
10:11
(18) файлы разные, но смысл то один
22 Денис Прог
 
02.04.18
10:12
(19) Наверное, да. Попробую на своем компе, может и правда дело в чем то ином.
23 Мимохожий Однако
 
02.04.18
10:13
(14) Повторяю: Отключи сценарии автоматического обмена пакетами
24 Денис Прог
 
02.04.18
10:32
(23) Я вручную произвожу обмен, или вы другой какой то механизм подразумеваете?
25 Cyberhawk
 
02.04.18
10:32
(21) Какой еще смысл? Ты тугой? Файл нужно анализировать только тот, который указан в ошибке.
26 Serg_1960
 
модератор
02.04.18
10:33
1. Не ругайтесь и не оскорбляйте других.
27 Serg_1960
 
модератор
02.04.18
10:35
(24) Конфигурация не озвучена, а в некоторых конфигурациях автоматический(!) обмен производится с использованием справочника "Сценарии синхронизации данных".
28 Денис Прог
 
02.04.18
10:37
(27) Не не, писал в вопросе: Платформа 8.3.10, конфигурация Комплексная автоматизация, редакция 1.1 (1.1.19.1).
29 Serg_1960
 
02.04.18
10:38
Sorry, был невнимателен.
30 Денис Прог
 
02.04.18
10:47
(25) Я вас возможно поражу, но файл, в котором случается ошибка есть копия файла обмена. Оба файла идентичны. Но за совет быть внимательнее, спасибо.
31 Serg_1960
 
02.04.18
10:50
(в тему, в роли Кэпа) Обмен можно инициализировать непосредственно из плана обмена, используя функционал платформы или с помощью "ручного" запуска сценария синхронизации данных для автоматического обмена. В этих двух вариантах работают различные алгоритмы формирования сообщений обмена. Если сообщение обмена не архивировать - то тоже различные варианты алгоритмов (с использованием временного файла для разархивирования).
Это, в свою очередь, тоже порождает вариантабельность ошибок.
32 Галахад
 
гуру
02.04.18
10:58
(31) Серьезно что-ли?
33 Денис Прог
 
02.04.18
11:19
(31) Эмм, не очень понимаю - как влияет ручной/автоматический запуск на формирование сообщения?
34 assasu
 
02.04.18
11:34
(0) видел похожую инфу в инете.

там плясали вокруг этих строк в файле
<v8de:Digest1>00000000000000000000000000000000</v8de:Digest1>
<v8de:Digest2 v2="e9d50d3997192529190612be7d91764c">09b8f5839afdd724be3d85­315771472b</v8de:Digest2>
35 Рэйв
 
02.04.18
11:42
Проверка файлов XML на наличие недопустимых символов с возможностью исправления.
http://catalog.mista.ru/public/286257/
36 Рэйв
 
02.04.18
11:43
Поиск объекта выгрузки РИБ с нечитаемым символом для XML
http://catalog.mista.ru/public/158782/
37 Денис Прог
 
02.04.18
11:59
(34) ну там немного другое, это я делал когда свой cf заливал, центральная база не хотела обмениваться с периферийной как раз из за этих строк. Спасибо.
38 Денис Прог
 
02.04.18
12:06
(35) Спасибо, скачать правда не могу, но буду копать в этом направлении.
39 Рэйв
 
02.04.18
12:20
(38)Дарю.
https://yadi.sk/d/DYEY-Q6V3TzAMy

Если поможет - будешь рекламировать:-)
40 Serg_1960
 
02.04.18
12:21
(32) Серьёзно. Уточню: я не говорю про формирование самого тела сообщения обмена, а только про алгоритмы по формированию самого файла сообщения. Например, использование временного файла, например, формирование наименования файла сообщения обмена - они различные.
41 Денис Прог
 
02.04.18
12:42
(39) Спасибо огромное!) Я другую немного написал, там основано на методе НайтиНедопустимыеСимволыXML, но к сожалению не она не ваша не нашла ничего.
42 Галахад
 
гуру
02.04.18
12:58
(40) Мы говорим про конфигурацию в (0)? Там все одинаково.
43 assasu
 
02.04.18
13:00
(39)(41) никогда не видел что бы обмен валился от недопустимых символов.
надо копать в сторону "Если снимать регистрацию, и делать поменьше объем данных - обмен успешно завершается. " Искать что не так в данных
44 Cyberhawk
 
02.04.18
13:07
(30) "файл, в котором случается ошибка есть копия файла обмена. Оба файла идентичны" // Как определил?
45 Рэйв
 
02.04.18
13:25
(43)Просто у тебя не было никогда таких случаев. С русскими буками редко такое бывает.у нас в казахском алфавите есть несколько специфических букв.Вот они иногда гонят и не входят в разрешенные XML  пределы символов
46 Денис Прог
 
02.04.18
13:28
(43) Копал и копаю) но дело в том, что есть определенный контрагент, на котором валится обмен, а именно при чтении файла в процедуре ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения, СтруктураНастроекОбменаДанными.КоличествоЭлементовВТранзакцииНаЗагрузкуДанных);

и валится он то на строчке НаименованиеПолное, то ДополнительноеОписание, то ГоловнойКонтрагент, с указанием на вполне адекватные символы.
47 Денис Прог
 
02.04.18
13:36
(44) точка останова на ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения, СтруктураНастроекОбменаДанными.КоличествоЭлементовВТранзакцииНаЗагрузкуДанных);

там в ЧтениеСообщения есть путь к временному файлу, который создается при чтении файла обмена.

Для примера:

фрагмент файла обмена(только контрагент):

<CatalogObject.Контрагенты>
                    <Ref>f1a02159-fc90-11db-9488-00016cb2604d</Ref>
                    <IsFolder>false</IsFolder>
                    <DeletionMark>false</DeletionMark>
                    <Parent>804b8942-d6d3-11e5-a248-00304864d125</Parent>
                    <Code>ЮЮ0001751</Code>
                    <Description>Поставщики</Description>
                    <НаименованиеПолное>Поставщики</НаименованиеПолное>
                    <ДокументУдостоверяющийЛичность> </ДокументУдостоверяющийЛичность>
                    <ДополнительноеОписание/>
                    <ГоловнойКонтрагент>f1a02159-fc90-11db-9488-00016cb2604d</ГоловнойКонтрагент>
                    <ИсточникИнформацииПриОбращении>00000000-0000-0000-0000-000000000000</ИсточникИнформацииПриОбращении>
                    <КодПоОКПО/>
                    <Комментарий/>
                    <ИНН/>
                    <КПП/>
                    <ОсновноеКонтактноеЛицо>00000000-0000-0000-0000-000000000000</ОсновноеКонтактноеЛицо>
                    <ОсновнойБанковскийСчет>00000000-0000-0000-0000-000000000000</ОсновнойБанковскийСчет>
                    <ОсновнойВидДеятельности>00000000-0000-0000-0000-000000000000</ОсновнойВидДеятельности>
                    <ОсновнойДоговорКонтрагента>00000000-0000-0000-0000-000000000000</ОсновнойДоговорКонтрагента>
                    <ОсновнойМенеджерПокупателя>00000000-0000-0000-0000-000000000000</ОсновнойМенеджерПокупателя>
                    <Покупатель>false</Покупатель>
                    <Поставщик>false</Поставщик>
                    <РасписаниеРаботыСтрокой/>
                    <СрокВыполненияЗаказаПоставщиком>0</СрокВыполненияЗаказаПоставщиком>
                    <ЮрФизЛицо/>
                    <НеЯвляетсяРезидентом>false</НеЯвляетсяРезидентом>
                    <ОКОПФ>00000000-0000-0000-0000-000000000000</ОКОПФ>
                    <Регион>00000000-0000-0000-0000-000000000000</Регион>
                    <ГруппаДоступаКонтрагента>00000000-0000-0000-0000-000000000000</ГруппаДоступаКонтрагента>
                    <Импортер>false</Импортер>
                    <Экпортер>false</Экпортер>
                    <ОсновнаяЛицензия>00000000-0000-0000-0000-000000000000</ОсновнаяЛицензия>
                    <Алкоголь>false</Алкоголь>
                    <Производитель>false</Производитель>
                    <ДопКод>0     </ДопКод>
                    <ЭлементСинхронизирован>false</ЭлементСинхронизирован>
                    <КодСтраны/>
                    <ВнутреннийКонтрагент>false</ВнутреннийКонтрагент>
                    <НаличиеФайлов>false</НаличиеФайлов>
                    <ОГРН/>
                    <ОбособленноеПодразделение>false</ОбособленноеПодразделение>
                    <Проверен>false</Проверен>
                    <ПроверенСтатус/>
                    <ОтветственныйПользователь>00000000-0000-0000-0000-000000000000</ОтветственныйПользователь>
                    <СсылкаФизЛицо>00000000-0000-0000-0000-000000000000</СсылкаФизЛицо>
                    <ИдентификаторУчастникаЭДО/>
                    <УзелОбменаПоУмолчанию>00000000-0000-0000-0000-000000000000</УзелОбменаПоУмолчанию>
                    <ВидыДеятельности/>
                    <МенеджерыПокупателя/>
                    <Обмен/>
                    <Файлы/>
                </CatalogObject.Контрагенты>

и временный:

<CatalogObject.Контрагенты>
                    <Ref>f1a02159-fc90-11db-9488-00016cb2604d</Ref>
                    <IsFolder>false</IsFolder>
                    <DeletionMark>false</DeletionMark>
                    <Parent>804b8942-d6d3-11e5-a248-00304864d125</Parent>
                    <Code>ЮЮ0001751</Code>
                    <Description>Поставщики</Description>
                    <НаименованиеПолное>Поставщики</НаименованиеПолное>
                    <ДокументУдостоверяющийЛичность> </ДокументУдостоверяющийЛичность>
                    <ДополнительноеОписание/>
                    <ГоловнойКонтрагент>f1a02159-fc90-11db-9488-00016cb2604d</ГоловнойКонтрагент>
                    <ИсточникИнформацииПриОбращении>00000000-0000-0000-0000-000000000000</ИсточникИнформацииПриОбращении>
                    <КодПоОКПО/>
                    <Комментарий/>
                    <ИНН/>
                    <КПП/>
                    <ОсновноеКонтактноеЛицо>00000000-0000-0000-0000-000000000000</ОсновноеКонтактноеЛицо>
                    <ОсновнойБанковскийСчет>00000000-0000-0000-0000-000000000000</ОсновнойБанковскийСчет>
                    <ОсновнойВидДеятельности>00000000-0000-0000-0000-000000000000</ОсновнойВидДеятельности>
                    <ОсновнойДоговорКонтрагента>00000000-0000-0000-0000-000000000000</ОсновнойДоговорКонтрагента>
                    <ОсновнойМенеджерПокупателя>00000000-0000-0000-0000-000000000000</ОсновнойМенеджерПокупателя>
                    <Покупатель>false</Покупатель>
                    <Поставщик>false</Поставщик>
                    <РасписаниеРаботыСтрокой/>
                    <СрокВыполненияЗаказаПоставщиком>0</СрокВыполненияЗаказаПоставщиком>
                    <ЮрФизЛицо/>
                    <НеЯвляетсяРезидентом>false</НеЯвляетсяРезидентом>
                    <ОКОПФ>00000000-0000-0000-0000-000000000000</ОКОПФ>
                    <Регион>00000000-0000-0000-0000-000000000000</Регион>
                    <ГруппаДоступаКонтрагента>00000000-0000-0000-0000-000000000000</ГруппаДоступаКонтрагента>
                    <Импортер>false</Импортер>
                    <Экпортер>false</Экпортер>
                    <ОсновнаяЛицензия>00000000-0000-0000-0000-000000000000</ОсновнаяЛицензия>
                    <Алкоголь>false</Алкоголь>
                    <Производитель>false</Производитель>
                    <ДопКод>0     </ДопКод>
                    <ЭлементСинхронизирован>false</ЭлементСинхронизирован>
                    <КодСтраны/>
                    <ВнутреннийКонтрагент>false</ВнутреннийКонтрагент>
                    <НаличиеФайлов>false</НаличиеФайлов>
                    <ОГРН/>
                    <ОбособленноеПодразделение>false</ОбособленноеПодразделение>
                    <Проверен>false</Проверен>
                    <ПроверенСтатус/>
                    <ОтветственныйПользователь>00000000-0000-0000-0000-000000000000</ОтветственныйПользователь>
                    <СсылкаФизЛицо>00000000-0000-0000-0000-000000000000</СсылкаФизЛицо>
                    <ИдентификаторУчастникаЭДО/>
                    <УзелОбменаПоУмолчанию>00000000-0000-0000-0000-000000000000</УзелОбменаПоУмолчанию>
                    <ВидыДеятельности/>
                    <МенеджерыПокупателя/>
                    <Обмен/>
                    <Файлы/>
                </CatalogObject.Контрагенты>
48 Денис Прог
 
04.04.18
17:11
Нашел решение проблемы, точнее ее исправление.

Нижеперечисленное делаю при помощи обработки ВыгрузкаЗагрузкаДанныхXML(выгружаю), удалению произвожу самописной.

1. Делаю отбор нужного элемента(в моем случае я отбирал нужного мне контрагента);
2. Выгружаю в файл;
3. Удаляю контрагента(ОбменДанными=Истина);
4. Произвожу успешный обмен(неважно с какими данными, я просто пустые сообщения гонял, и обмен в обе стороны);
5. Загружаю обратно контрагента обработкой;
6. Делаю обмен - и ошибок в данном контрагенте нет.

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

В связи с чем хотелось бы спросить  - с чем может быть связано данное поведение? У кого какие мысли?
49 Serg_1960
 
05.04.18
09:43
(48) Удаляя и загружая объект, Вы исправляете ошибки, возникшие при записи объекта, которые, возможно, не выявляет ТИИ (оно не всесильно).

А если говорить "в общем случае", то...
Стандартный типовой обмен РИБ - это функционал платформы прежде всего. Раньше часто обращал внимание и не раз попадал на то, как платформу глючит на казалось бы не таких уж и больших объёмах данных. Ваше решение в (48) просто помогает обойти эту проблему (уменьшая объём данных и вынося конфликтные данные в отдельный обмен).

Ну, что я могу сказать по этому поводу... "Надо чаще обмениваться". Чем чаще обмен - тем меньше объём. Азбука :)

Можно, в принципе, попробовать изменить настройку обмена, уходя из исполнения в рамках единой транзакции, на подбор в сторону уменьшения количества объектов в транзакции до тех пор, пока не уйдёт ошибка.
50 Денис Прог
 
06.04.18
13:38
(49) "Удаляя и загружая объект, Вы исправляете ошибки, возникшие при записи объекта, которые, возможно, не выявляет ТИИ (оно не всесильно). " - тоже предполагал, но все таки интересно было кто еще что скажет)

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

Да и самое главное, ошибка ушла, справочники обмениваются, пока что все хорошо)

Спасибо)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.