Show/Hide Toolbars

Руководство администратора

Наиболее частые ошибки синхронизации с 1С, их диагностика и устранение

Ссылки Назад Вверх Вперед

Тестирование настройки подключения

В XML настройке подключения необходимо убедиться, что указаны верные адреса WEB-сервисов 1Формы и 1С.

<SyncSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="Sync" OneCAddress="http://1forma.ru/Base1C/ws/1CTCService.1cws" OneCUserName="Sync1c" OneCPassword="(Password is encrypted)" TCAddress="http://1forma.ru/TC1CService.asmx?WSDL" TCUserName="Sync1C" TCPassword="(Password is encrypted)" GUIDExtParamID="33" UsersDic="Справочник.ФизическиеЛица" QueryRepeatTime="00:05:00" UsersFilterIn1Forma="false">

Если все указано верно, то необходимо выполнить Проверку соединения.

1c_fag_1

Пункт "Проверить соединение"

Настройка синхронизации Справочников/Документов и категорий

Синхронизация настраивается с новой категорией

В справочниках или документах 1С есть поля обязательные для заполнения. В XML настройки, в тегах параметров рекомендуется указывать параметр IsRequired="True".

<Property ExtParamID="34" ExtParamName="Наименование" RequisiteName="Наименование" Synonym="Наименование" Type="Text" IsRequired="true" RepresentAsReadonlyText="false" PropertyUse="ДляГруппыИЭлемента">

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

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

1c_fag_2

Права доступа в категории

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

1c_fag_3

Настройка обязательности текста задачи в категории

Синхронизация настраивается с существующей категорией

Для настройки событий синхронизации используются теги <SyncEvents1C /> и <SyncEventsTC />. Данные теги отвечают за события, которые происходят в одной системе и приводящие к тем или иным действиям в другой системе. Если данные теги пустые, то это не является явной ошибкой, но без них синхронизация данных будет возможна только при первичной выгрузке данных

1c_fag_4

Кнопка "Произвести первичную выгрузку по текущим настрокам"

1c_fag_5

Выбор объектов для первичной выгрузки

Данные не приходят, т.к. существует запрос в виртуальных реквизитах, который возвращает false, что препятствует выгрузке.

1c_fag_6

"Правило выгрузки" в 1С

После обновления 1С или изменения категории "Первой Формы", в XML указан реквизит, которого нет в той или иной системе. В данном случае система будет писать ошибку в комментарии к задаче при каждой попытке записи данные.

Настройка синхронизации пользователей

Пользователи могут синхронизироваться только с 1 базой 1С. В настройках XML в теге SyncSettings в параметре UsersDic должен быть указан справочник, с которым будут синхронизироваться пользователи "Первой Формы". Как правило, это справочник “Физические лица”.

<SyncSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="Sync" OneCAddress="http://1forma.ru/Base1C/ws/1CTCService.1cws" OneCUserName="Sync1c" OneCPassword="(Password is encrypted)" TCAddress="http://1forma.ru/TC1CService.asmx?WSDL" TCUserName="Sync1C" TCPassword="(Password is encrypted)" GUIDExtParamID="33" UsersDic="Справочник.ФизическиеЛица" QueryRepeatTime="00:05:00" UsersFilterIn1Forma="false">

В настройках сопоставления реквизитов справочника 1С и реквизитов пользователя "Первой Формы" изменения происходят крайне редко.

1c_fag_7

Настройки синхронизации пользователей с 1С

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

Если пользователь не синхронизировался вовсе, то следует проверить настройки UserFilter и UserFilterIn1forma.

<SyncSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="Sync" OneCAddress="http://1forma.ru/Base1C/ws/1CTCService.1cws" OneCUserName="Sync1c" OneCPassword="(Password is encrypted)" TCAddress="http://1forma.ru/TC1CService.asmx?WSDL" TCUserName="Sync1C" TCPassword="(Password is encrypted)" GUIDExtParamID="33" UsersDic="Справочник.ФизическиеЛица" QueryRepeatTime="00:05:00" UserFilter ="UserFilter" UsersFilterIn1Forma="false">

Если UserFilterIn1Forma="true", то фильтрация пользователей будет происходить на стороне 1Формы в зависимости от значения реквизита, указанного в UserFilter.В данном случае стоит проверить Лог Выгрузки на предмет синхронизации данной записи справочника и проверить значение фильтра и критически важных данных для создания пользователя.

Если UserFilterIn1Forma="false", то фильтрация пользователей происходит на стороне 1С. В данном случае данные сотрудник не будет отправлен, если он помечен на удаление, в справочнике Виртуальные реквизиты 1Формы есть настроенное правило выгрузки для данного справочника.

1c_fag_8

"Правило выгрузки" в 1С

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

Настройка синхронизации орг. структуры

В логах синхронизации 1С можно посмотреть результат выгрузки орг. структуры и связки должностей и пользователей. Так же можно обратиться к файлам выгрузки, по которым и происходит запись данных в "Первую Форму". Данные файлы, по умолчанию, можно найти на Web сервере "Первой Формы", на диске C:\Temp\. В данной папке будут храниться файлы по выгрузке каждого уровня орг. структуры, должностей и связки должность-пользователь. В данных файлах можно найти конкретный отдел, должность или пользователя, которому она не назначена.

Как правило, основными причинами отсутствия должности у пользователя являются две причины:

Должность или отдел не выгружены, т.к. по ним в параметр IncomingFilter вернул false.

Должность или отдел не выгружены, т.к. отсутствует вышестоящее подразделение. Как правило, по причине, описанной выше.

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

Что делать, если синхронизация не запускается

Из 1С

1. Запустить тест соединения.

2. Проверить, что настроена верная база (не тестовая и в нужном справочнике есть записи).

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

4. Текст задачи доступен для редактирования и стоит галочка в настройках категории "Администратор может править текст задачи".

5. В настройках синхронизации категории (тег Record) источником данных (тег SyncSource) стоит "_1C" или "Both", а так же направление синхронизации стоит "From1CtoTC" или "Both".

6. Проверить, что прописаны события 1С, которые вызывают обмен данными.

1c_fag_9

XML в настройках синхронизации категории

7. В 1С не стоит галочка "Запретить обмен с Первой Формой".

c_recomendations_scenarios_faq_5

1С (Режим управляемых форм), Справочник Настройки обмена, запись Общие настройки

8. В 1С не настроен фильтр синхронизации данных или он возвращает "True".

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

10. Указан верный веб-сервис "Первой Формы". Проверить можно следующим образом: в настройках синхронизации с 1С выберите нужный профиль, нажмите "Получить настройки по имени".

1c_fag_11

Настройка синронизации с 1С

Проверьте тег SyncSettings:

<SyncSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="Sync1C" OneCAddress="http://111.111.111.11:9999/ut/ws/1CTCService.1cws" OneCUserName="robotTC" OneCPassword="(Пароль зашифрован)" TCAddress="http://11.111.11.111/TC1CService.asmx?WSDL" TCUserName="support" TCPassword="(Пароль зашифрован)" GUIDExtParamID="151" QueryRepeatTime="00:05:00" UsersFilterIn1Forma="false" TCCommentOnEpChange="true" OneCCredentialType="Basic">

11. Нет обязательных ДП в категории, которые не синхронизируются из 1С или не заполняются.

12. Проверить ДП "Lookup" — все его значения должны быть доступны пользователю "Первой Формы", от имени которого идет синхронизация: доступ в категорию, смарт-фильтр, статусы задач, связанные ДП, тегирование .

13. Проверить маски в ДП.

14. Проверить значения ДП по умолчанию.

15. В XML нет ДП или реквизитов 1С, которые физически отсутствуют в категории или Справочнике/Документе.

Из 1Формы

1. Проверить доступность Web-сервисов. Для этого необходимо запустить тест-соединения

2. Проверить, что настроена верная база.

3. Проверить, что в настройках синхронизации категории (тег Record) источником данных (тег SyncSource) стоит "_TC" или "Both", а также направление синхронизации стоит "FromTCto1C" или "Both".

4. Проверить, что прописаны события "Первой Формы", которые вызывают обмен данными.

5. В категории "Первой Формы" не настроен фильтр синхронизации данных или он возвращает "True".

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

7. В XML нет ДП или реквизитов 1С, которые физически отсутствуют в категории или Справочнике/Документе.

8. Проверить, что в 1С нет логики препятствующей созданию записей, если не указаны какие-то реквизиты (как правило это проверка корректности данных, контроль зависимости одних реквизитов от других) или она выполняется на стороне 1Формы

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

Обмен данными не работает

В пользовательском режиме приложения "1С:Предприятие" откройте настройки обмена с "Первой Формой". Убедитесь, что флажок "Запретить обмен с Первой Формой" не включен. Если флажок включен — отключите его и нажмите кнопку Записать и закрыть.

1c_recomendations_scenarios_faq_6

Запрет обмена с "Первой Формой"

Совпадение событий по времени при синхронизации

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

1c_recomendations_scenarios_faq_7

Сообщение об ошибке при совпадении изменений по времени

Это нормальное поведение системы, поскольку в БД содержится уже другая версия данных. В этом случае форму документы/элемента справочника надо закрыть без сохранения и затем открыть снова.

Для администратора возникновение таких ошибок должно стать сигналом к пересмотру правил настройки бизнес-процесса. Возможно, для таких документов/справочников достаточно одностороннего обмена данных из "1С:Предприятие" в "Первую Форму".

Таймаут при синхронизации

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

На стороне "Первой Формы" таймаут ожидания ответа при вызове веб-сервиса 1С составляет 12 часов.

На стороне 1С таймаут можно регулировать. Для этого в "1С:Предприятие" в справочнике "Настройки обмена ("Первая форма")" откройте предопределенный элемент "Общие настройки" и в поле "Таймауты WS" увеличьте значение в поле "Прокси" – укажите, сколько секунд сервер 1С должен ждать ответа от сервера "Первой Формы" до обрыва соединения. Если указать значение 0, то таймаут не ограничен (сервер будет ждать до тех пор, пока операция не будет выполнена).

В поле "Определение" указывается длительность подключения к сервису (в секундах), а в поле "Прокси" – длительность выполняемой операции внутри "Первой Формы" (в секундах).

1c_recomendations_scenarios_faq_8

Настройки таймаута

Недостаточно прав доступа в 1С

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

"Error while calling 1С service. Нарушение прав доступа к операции Web-сервиса:

{www.rg-soft.ru}:rg1СTCService:PerformOperation()."

Причина возникновения ошибки связана с недостатком прав пользователя на стороне приложения "1С:Предприятие". Для исправления необходимо в конфигураторе "1С:Предприятие" проверить роли у пользователя, который указан в "Первой Форме" в настройках для подключения (атрибут OneCUserName в XML-настройках), и убедиться, что хотя бы одна из этих ролей имеет доступ к сервису.

Не выполняются регламентные задания

Если на стороне "1С:Предприятие" задания в очередь ставятся и видны в регистре сведений "Очередь обмена (Первая Форма)", но не выполняются, необходимо убедиться, что регламентное задание по обработке очереди есть в системе, оно включено, и регламентные задания не заблокированы на стороне сервера.

1. Проверка существования регламентного задания

В пакете "Модуль 1С", скачиваемом через интерфейс администратора "Первой Формы", есть папка "Диагностика", в которой находится внешняя обработка "Консоль заданий.epf". Этот файл необходимо открыть в режиме "1С:Предприятие". Появится окно, в котором будут отображены все регламентные задания в системе. Задание модуля синхронизации имеет название "Очередь обмена с Первой Формой".

2. Проверка, что задание включено

В "Консоли Заданий" можно просмотреть, включена ли обработка и какой период ее выполнения.

3. Проверка блокировки

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

4. Поиск и проверка объектов, вызвавших ошибки синхронизации

В пакете "Модуль 1С", скачиваемом через интерфейс администратора "Первой Формы", есть папка "Диагностика", в которой находится внешняя обработка "ГУИДОбъекта.epf". Этот файл необходимо открыть в режиме "1С:Предприятие". С помощью обработки можно:

определить уникальный идентификатор (GUID) объекта "1С:Предприятие". Для этого выберите интересующий вас объект в поле "Объект" и нажмите кнопку Сообщить ГУИД.

определить объект, вызвавший ошибку при синхронизации с "Первой Формой", и проверить правильность заполнения его реквизитов. Для этого выберите тип объекта в поле "Объект", введите его GUID в поле "ГУИД" и затем нажмите кнопку "Найти по ГУИД". GUID и тип объекта можно посмотреть в журнале ошибок синхронизации.

 

1c_recomendations_scenarios_faq_10

Обработка "ГУИДОбъекта"

Нераспознанная версия сообщения

Если при любом обращении "Первой Формы" к 1С появляется сообщение

System.ServiceModel.CommunicationException: Нераспознанная версия сообщения/Unrecognized message version

необходимо проверить адреса сервисов и в частности параметр ?WSDL.

Синхронизация скрытых и "только для чтения" колонок ДП "Таблица"

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

Не загружаются данные из справочника 1С

Из-за ограничений на количество символов объекты с длинными названиями могут не сопоставляться. Попробуйте в 1С увеличить длину полей.

Неверный адрес сервиса 1С

В журнале ошибок есть ошибка вида:

Request format is unrecognized for URL unexpectedly ending in '/TC1CService.asmx'.

Это может означать, что в пользовательских настройках приложения в поле TC1C_ServiceAppAddress указан неверный адрес.

Не задан параметр GUIDExtParamID

В журнале ошибок есть ошибка вида:

System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.ThrowHelper.ThrowKeyNotFoundException()
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at TCClassLib.ExtParams.Helper.GetExtParamName(Int32 extParamId, Nullable`1 subcatId, Boolean injectResources, Nullable`1 userId) in C:\TeamCity\BuildAgent\work\7a2e67b2a0804e2c\TCClassLib\ExtParams\ExtParams.cs:line 2037
at TaskCenter.admin.Sync1C.AddDictionary.Page_Load(Object sender, EventArgs e) in C:\TeamCity\BuildAgent\work\7a2e67b2a0804e2c\TaskCenter\admin\Sync1C\AddDictionary.aspx.cs:line 168
Origin=WebForm
OriginId=2
User=Support
Url=https://your.1forma.net/admin/Sync1C/AddDictionary.aspx?Name=1С&OneCAddress=http:%smth%2F1CTCService.1cws&OneCServerName=http:%2F%2Fsmth&OneCUserName=ObmenForma&OneCPassword=(Пароль зашифрован)&TCAddress=https:%your.1forma.ru%2FTC1CService.asmx%3FWSDL&TCServerName=https:%2F%2Fnts.1forma.ru&TCUserName=1CServer&TCPassword=(Пароль зашифрован)&GUIDExtParamID=0&QueryRepeatTime=00:05:00&UsersFilterIn1Forma=false&TCCommentOnEpChange=true&OneCCredentialType=Basic

 

Проверьте настройки.

Отладка ошибок в 1С

Проблема: Данные уходят из "Первой Формы", заявки в 1С создаются, параметры меняются. Изменения в 1С не приходят, а в "Первой Форме" ошибок нет.

Ход действий:

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

1C_recomendations_scenarios_faq_16_1

Настройки синхронизации с 1С

2. Проверяем наличие и содержимое ключей в пользовательских настройках.

warning_icon  Пользователь из поля TC1C_SystemUser должен существовать и иметь права администратора. Раздел из поля TC1C_CatId должен существовать.

1C_recomendations_scenarios_faq_16_2

Общие настройки приложения -> Пользовательские настройки

3. Проверяем настройки в 1С. Для этого открываем конфигуратор в режиме администратора, заходим в "Функции для технического специалиста" (если такой надписи нет — запрашиваем доступ у администраторов 1С).

1C_recomendations_scenarios_faq_16_3

Функции для технического специалиста

1C_recomendations_scenarios_faq_16_4

Поиск по справочникам

Внутри справочника будет список из категорий, которые участвуют в синхронизации с "Первой Формой". Заходим в "Общие настройки".

1C_recomendations_scenarios_faq_16_5

Состав справочника Настройки обмена ("Первая форма")

В общих настройках необходимо:

1) Проверить соединение.

2) Проверить, что адрес сервера и имя базы параметр "Рабочая база 1С" совпадает с адресом сервера и именем базы из параметра 1С "Address".

3) Проверить, что в параметре Первая форма "Address" указан правильный порт (при наличии нескольких приложений на сервере).

1C_recomendations_scenarios_faq_16_6

Общие настройки обмена ("Первая форма")

Если все настроено корректно, но проблема не устранена, необходимо перейти в режим отладки. Режим отладки представляет собой конфигуратор 1С в одном окне и пользовательский режим в другом.

1C_recomendations_scenarios_faq_16_7

Конфигуратор — режим отладки

В окне конфигуратора выбираем в общих модулях "rgПерваяФормаСервер" (1), проваливаемся внутрь и устанавливаем точку остановы (F9) в функции "ОтправитьДанные_В_1Ф" на строку "Возврат Результат"(2).

1C_recomendations_scenarios_faq_16_8

Конфигуратор — модуль rgПерваяФормаСервер

После установки точки остановы нужно вызвать событие из пользовательского режима. Вносим изменение в поле и нажимаем "Записать"

1C_recomendations_scenarios_faq_16_9

Пользовательский режим отладки

Переходим в режим конфигуратора, выделяем слово "Результат" в строке с точкой остановы, нажимаем shift+f9, чтобы увидеть результат.

1C_recomendations_scenarios_faq_16_10

Сообщение отладки

Ошибка Запрос HTTP не разрешен для схемы аутентификации клиента "Basic"

Ошибка "Запрос HTTP не разрешен для схемы аутентификации клиента "Basic"" может отображаться на странице "Синхронизация с 1С" при Проверке соединения.

Проблема: Запрос HTTP не разрешен для схемы аутентификации клиента "Basic". От сервера получен заголовок аутентификации "Basic realm="1C:Enterprise 8.3"".

1C_recomendations_scenarios_faq_17_error

Ошибка авторизации на веб-сервисе 1С

Ход действий:

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

1. На сервере "Первой Формы" через браузер зайдите по адресу веб-сервиса "1С:Предприятие". Появится окно с просьбой ввести логин и пароль к конфигурации "1С:Предприятие".

1C_recomendations_scenarios_faq_18_1

Окно для ввода логина и пароля к конфигурации "1С:Предприятие"

После авторизации откроется страница со ссылкой на веб-сервис (xml).

2. Если вариант 1 не сработал, пересохраните логин-пароль в конфигурации (кнопка Записать настройки).

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

Ошибка Тип содержимого text/html; charset=utf-8 ответного сообщения не соответствует типу содержимого привязки

Ошибка "Тип содержимого text/html; charset=utf-8 ответного сообщения не соответствует типу содержимого привязки" может отображаться на странице "Синхронизация с 1С" при Проверке соединения.

1C_recomendations_scenarios_faq_18_2

Ошибка "Тип содержимого text/html; charset=utf-8 ответного сообщения не соответствует типу содержимого привязки"

Проблема: На стороне публикации 1С произошли какие-то ошибки, поэтому вместо корректно Xml-пакета с данными, сервер публикации (IIS, Apache) выдал внутреннюю ошибку сервера (код 500) и в контенте ответа - html-код с описанием ошибки, произошедшей при обработке со стороны 1С.

Ход действий:

Проверьте доступность веб-сервиса 1С. На сервере "Первой Формы" через браузер зайдите по адресу веб-сервиса "1С:Предприятие". Появится окно с просьбой ввести логин и пароль к конфигурации "1С:Предприятие".

1C_recomendations_scenarios_faq_18_1

Окно для ввода логина и пароля к конфигурации "1С:Предприятие"

После авторизации откроется страница со ссылкой на веб-сервис (xml).

Часто ошибка возникает при обновлении модуля 1С без последующей перепубликации веб-сервиса 1С. Для правильного обновления модуля пройдите все шаги в соответствии с инструкцией.

Полезные ссылки