Добрый день.
Вопрос по импорту из 1С.

Импортирую табличную часть приходной накладной из 1С в Terrasoft стандартными средствами.
Настройки импорта на скриншоте.
В процессе хочу скопировать Наименование товара из табличной части поступления товаров в тестовое поле своей террасофтовской детали "Товары в накладной". Без предварительного импорта записи товара в справочник. Думаю, что корректнее всего это делать в событии OnBeforeRecordImport элемента импорта OfferingsInOfferingMovement.

function OnBeforeRecordImport(Param, Dataset, Select1C) {
        var tmp1 = Select1C.Товар;
        var tmp2 = Select1C.Товар.Наименование;
}

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

Вопрос. Как в скрипте во время импорта в событии OnBeforeRecordImport получить значение наименования товара из табличной части документа?

1С7.7. Terrasoft 3.3.2.43.

Нравится

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

Во первых, Вам нужно выяснить название реквизита(колонки) табличной части в 1С, где хранится информация о товаре.
(Например, в моей конфигурации реквизит с товаром называется "ТМЦ")
Во вторых, добавить этот реквизит в настройке соответствия полей. При этом "Имя поля в TS" оставить пустым, но галочка "Не импортировать" НЕ должна стоять!

После чего написать код в скрипте:

function OnBeforeRecordImport(Param, Dataset, Select1C) {
	Dataset('CustomOffering') = Select1C.ТМЦ.Наименование;
}

Спасибо, как то сразу не подумал, что если не поставить реквизит в список, то он не попадет в запрос =)

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

Здравствуйте.
Знакомлюсь с особенностями импорт из 1С в TS, и возник такой вопрос. Что представляет собой параметр Select1C, например, в OnBeforeRecordImport(Param, Dataset, Select1C).

Это датасет с результатом выполнения запроса или же нечто иное?
И где можно найти информацию по работе с этой штуковиной?

Нравится

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

Select1C не является датасетом или другим объектом Terrasoft. Этот параметр содержит ссылку на объект 1С, с которым в данный момент ведётся работа. В частности, при обработке OnBeforeRecordImport параметр Select1C содержит импортируемую строку, и если необходимо, можно обратиться к её значениям. Список свойств и методов этого параметра зависит от импортируемого объекта 1С. Например, в таком примере:

function OnBeforeRecordImport(Param, Dataset, Select1C) {
	if (Select1C.ДокументОснование.MetaData().FullName() != "Документ.СчетНаОплатуПокупателю") {
        Dataset.Values('InvoiceID') = null;
	}
}

проверяется документ, на основании которого была создана текущая запись, и если это не счет на оплату покупателю, поле InvoiceID импортируемого документа заполняется пустым значением.

Спасибо, Олег.

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