В террасофте версия 3.3 предусмотрена интеграция с 1C (Инструменты->интеграции). Но там можно выбрать только версию 8.0 и 8.1. Добавил в перечисление Dataflow\General\Edit Windows\1C\Dictionaries\enm_1CVersion версию 8.2 со значением V82. Теперь при тесте соединения в интеграции, при выборе версии 8.2 появляется ошибка 'undefined' есть null или не является объектом.

Как я понимаю соединение с 1С идет с помощью ActiveXObject('V81.COMConnector') и чтобы начало работать с версией 8.2 надо использовать ActiveXObject('V82.COMConnector'). И где-то надо привязать значение перечисления и вызов нужного объекта...

Какие есть решения?

Нравится

23 комментария

Антон, попробуйте в скрипте scr_Dataflow1CUtils в функцию GetScriptObjectByVersion добавить блок для V82:

function GetScriptObjectByVersion(Param) {
                switch (Param.Version) {
                case 'V82': return scr_Dataflow1CUtils_V81;
                               break;
                case 'V8': return scr_Dataflow1CUtils_V81;
                               break;                  
                }
}

Спасибо именно это я и искал

а что нужно добавить для версии 7.7?

Для версии 1С 7.7 нужно обновить утилиту интеграции. Все необходимые файлы и инструкция по установке находятся: http://community.terrasoft.ua/catalog/3796

Спасибо Вам за ответ, мне вот там один пунктик не понятен...
2.Удалить из папки с сервисами (Services) утилиты синхронизации:
scr_DataflowEditExcel
wnd_DataflowEditExcel
wnd_DataflowsWorkspace
wnd_DefaultValuesArea
wnd_EnumItemsArea
wnd_PrimaryKeysArea

В последней версии утилиты эти сервисы уже исключены из архива services.rar

Все сделал как в инструкции, выбивает ошибку при настройке правил синхронизации

Если ошибка связанная с NotifyObject то Вам нужно подправить скрипт
wnd_1CObjectEditScript
Привести функцию к такому виду:

function edtServiceCodeOnPrepareSelectWindow(LookupDataControl, SelectWindow) {
	var TypeTS = edtTypeTSID.DataField.Value;
	var ServiceTypeCode;
	if (TypeTS == tsotDBDataset){
		ServiceTypeCode = 'DBDataset';
	} else
	if (TypeTS == tsotEnum){
		ServiceTypeCode = 'Enum';
	} else
	if (TypeTS == tsotTable){
		ServiceTypeCode = 'Table';
	}
	SetAttribute(SelectWindow, 'ServiceTypeCode', ServiceTypeCode);
	var LookupDataset = LookupDataControl.DataField.LookupDataset;
	LookupDataset.KeyDataField = LookupDataset.DataFields('Code');
}

Новая версия, с исправленным скриптом, в скором времени появится на сайте.

Спасибо, помогло!
Вот только не понятно, почему в инструкции по настройке интеграции ТС с 1С одни формы, а после обновления ТС другие? И еще вопрос, мне нужно какие то реквизиты добавлять в конфигурацию 1С?
Вот еще такие ошибки есть...
не понятно, почему реквизит 1С называется Objec1C а в TS - Object1C
Спасибо заранее.

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

"Пономаренко Владимир" написал: #10

1.Инструкция немного устарела
2.Никакие реквизиты не нужно добавлять в 1С
(в утилите, в списке реквизитов 1С, есть системные реквизиты, которых фактически нет в 1С; они созданы для удобства настройки ключевых полей)
[ВАЖНО! в каждой настройке сущностей должно быть хотя бы одно ключевое поле]
3.Перезапустите Террасофт

"Пономаренко Владимир" написал: #11

По поводу той ошибки, что видна на скриншоте, дело в том что:
Cannot insert the value NULL into column 'Name', table 'tbl_Account'
Поле "Контрагент"('Name') в справочнике "Контрагенты" не допускает пустых значений, учтите это при настройке синхронизации

"Кривонос Максим" написал:В последней версии утилиты эти сервисы уже исключены из архива services.rar

А где взять самую последнюю, где они исключены? В каталоге расширений последняя от 230311 и там они не исключены.

230311 на текущий момент самая последняя.
В будущих версиях исключим.

Dataflow\General\Edit Windows\1C\Dictionaries\enm_1CVersion создал тут 8.2
поправил функцию

выдает ошибку "ошибка соедининения undefind есть null или не является объектом" при поытке соединиться с 1С

1С 8.2
Версия TC 3.4

Где копать ?

Здравствуйте, Юрий!

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

Наиболее вероятный источник проблемы - вы настройках подключения выбрано сетевое подключение к БД, а она находится локально (либо наоборот)

Обратите внимание на галочку "на сервере 1С"

01
02

пробовал подключаться к копии базы локально и к рабочей по сети.
Галочку не ставлю так как 1С файл серверная

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

Таким образом если сделать вышеуказанное в этой ветке - то подключится к 8.2 получается

Здравствуйте. Версия ТС 3.3.2.53 Подключиться получается к 1С 8.2 УПП. А вот выгрузить метаданные не получилось. Сразу обрывается, как только запускается.

Подобная проблема бывает, если Вами неверно установлена утилита - задублировано содержимое таблицы с о списком типов объектов 1С. Для устранения сбоя следует очистить таблицу, и выполнить запрос на заполнение таблицы повторно.



Добрый день!
Подскажите пожалуйста, что делать с ошибкой при загрузке сервиса tbl_1CObjectTypesByVersions

Спасибо!

Здравствуйте.

Укажите пожалуйста вашу версию Terrasoft.
Создайте новую таблицу с таким же названием и попробуйте загрузить сервис снова.

Убедитесь что Вы загружаете сервисы в таком порядке:
tbl_1CObjectTypes
tbl_1CObjectTypesByVersions
tbl_1CMDObjects
tbl_1CMDObjectFields
tbl_Dataflow
tbl_1CObject
tbl_1CObjectFields
tbl_DataflowHistory
il_*
При этом сохраняете в БД каждую таблицу

Показать все комментарии