edit
This commit is contained in:
parent
96af8937f6
commit
e60192d3ed
54
public/bsp-zagruzka-iz-faila/fragmenty-koda.json
Normal file
54
public/bsp-zagruzka-iz-faila/fragmenty-koda.json
Normal file
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Обработка Загрузка данных из файла
|
title: 1. Обработка Загрузка данных из файла
|
||||||
slug: общие-бсп-стандартные-подсистемы-загрузка-данных-из-файла/обработка-загрузка-данных-из-файла
|
slug: общие-бсп-стандартные-подсистемы-загрузка-данных-из-файла/1-обработка-загрузка-данных-из-файла
|
||||||
---
|
---
|
||||||
|
|
||||||
Для загрузки данных используется обработка `Загрузка данных из файла`. По умолчанию она скрыта, найти можно в функциях для технического специалиста.
|
Для загрузки данных используется обработка `Загрузка данных из файла`. По умолчанию она скрыта, найти можно в функциях для технического специалиста.
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Настраиваемые алгоритмы загрузки в справочники
|
title: 2. Настраиваемые алгоритмы загрузки в справочники
|
||||||
slug: общие-бсп-стандартные-подсистемы-загрузка-данных-из-файла/настраиваемые-алгоритмы-загрузки-в-справочники
|
slug: общие-бсп-стандартные-подсистемы-загрузка-данных-из-файла/2-настраиваемые-алгоритмы-загрузки-в-справочники
|
||||||
---
|
---
|
||||||
|
|
||||||
Т.к. справочники, имеющие реквизиты типа `ХранилищеЗначения` не отображаются в обработке `Загрузка данных из файла` по умолчанию, их при необходимости можно подключить самостоятельно. Также можно отключить какой-нибудь справочник и сделать его недоступным для использования в обработке.
|
Т.к. справочники, имеющие реквизиты типа `ХранилищеЗначения` не отображаются в обработке `Загрузка данных из файла` по умолчанию, их при необходимости можно подключить самостоятельно. Также можно отключить какой-нибудь справочник и сделать его недоступным для использования в обработке.
|
@ -0,0 +1,319 @@
|
|||||||
|
---
|
||||||
|
title: 3. Загрузка данных в табличную часть
|
||||||
|
slug: общие-бсп-стандартные-подсистемы-загрузка-данных-из-файла/3-загрузка-данных-в-табличную-часть
|
||||||
|
---
|
||||||
|
|
||||||
|
Полезное:
|
||||||
|
[Консоль кода](/common/konsol-koda-is.epf)
|
||||||
|
[Фрагменты кода](/bsp-zagruzka-iz-faila/fragmenty-koda.json)
|
||||||
|
|
||||||
|
Подсистема "Загрузка данных из файла" также поддерживает загрузку в табличные части документов и справочников. Для этого нужно:
|
||||||
|
|
||||||
|
# Создать макет
|
||||||
|
|
||||||
|
Макет создается на уровне объекта и должен обязательно иметь имя, созданное по шаблону **ЗагрузкаИзФайла<ИмяТабличнойЧасти>**. В нем настраиваем вид шапки таблицы **именя ячеек которой должны соответствовать именам реквизитов нужной табличной части**.
|
||||||
|
|
||||||
|
>Если табличная часть одна, допускается именовать макет просто **"ЗагрузкаИзФайла"**
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
# Создать команду на форме
|
||||||
|
|
||||||
|
В командной панели нужной ТЧ создаем команду `ЗагрузитьТоварыИзФайла` (имя произвольное), в обработчике которой реализуем заполнение служебной структуры, полученной с помощью метода `ЗагрузкаДанныхИзФайлаКлиент.ПараметрыЗагрузкиДанных` и вызываем непосредственное открытие формы загрузки методом `ЗагрузкаДанныхИзФайлаКлиент.ПоказатьФормуЗагрузки`.
|
||||||
|
|
||||||
|
## Пример реализации:
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ЗагрузитьТоварыИзФайла(Команда)
|
||||||
|
|
||||||
|
|
||||||
|
ПараметрыЗагрузки = ЗагрузкаДанныхИзФайлаКлиент.ПараметрыЗагрузкиДанных();
|
||||||
|
ПараметрыЗагрузки.ПолноеИмяТабличнойЧасти = "ПриходнаяНакладная.Товары";
|
||||||
|
ПараметрыЗагрузки.Заголовок = НСтр("ru = 'Загрузка списка товаров из файла'");
|
||||||
|
|
||||||
|
// Любые параметры, которые могут понадобиться дальше при
|
||||||
|
// выполнении метода, указанного в описании оповещения
|
||||||
|
ДополнительныеПараметры = Новый Структура();
|
||||||
|
ДополнительныеПараметры.Вставить("Контрагент", Объект.Контрагент);
|
||||||
|
ДополнительныеПараметры.Вставить("Организация", Объект.Организация);
|
||||||
|
|
||||||
|
ПараметрыЗагрузки.ДополнительныеПараметры = ДополнительныеПараметры;
|
||||||
|
|
||||||
|
Оповещение = Новый ОписаниеОповещения("ЗагрузитьТоварыИзФайлаЗавершение", ЭтотОбъект);
|
||||||
|
ЗагрузкаДанныхИзФайлаКлиент.ПоказатьФормуЗагрузки(ПараметрыЗагрузки, Оповещение);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Выполняем после завершения работы в стандартной форме загрузки из файла
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ЗагрузитьТоварыИзФайлаЗавершение(АдресЗагруженныхДанных, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
Если АдресЗагруженныхДанных = Неопределено Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
// АдресЗагруженныхДанных - адрес ВХ подготовленной ТЗ с загруженными данными
|
||||||
|
ЗагрузитьТоварыИзФайлаНаСервере(АдресЗагруженныхДанных);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ЗагрузитьТоварыИзФайлаНаСервере(АдресЗагруженныхДанных)
|
||||||
|
|
||||||
|
ЗагруженныеДанные = ПолучитьИзВременногоХранилища(АдресЗагруженныхДанных);
|
||||||
|
|
||||||
|
ТоварыДобавлены = Ложь;
|
||||||
|
Для каждого СтрокаТаблицы Из ЗагруженныеДанные Цикл
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(СтрокаТаблицы.Номенклатура) Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СтрокаТовары = Объект.Товары.Добавить();
|
||||||
|
ЗаполнитьЗначенияСвойств(СтрокаТовары, СтрокаТаблицы);
|
||||||
|
|
||||||
|
ТоварыДобавлены = Истина;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если ТоварыДобавлены Тогда
|
||||||
|
Модифицированность = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
# В модуле менеджера реализовать методы программного интерфейса
|
||||||
|
|
||||||
|
## Процедура УстановитьПараметрыЗагрузкиИзФайлаВТЧ
|
||||||
|
|
||||||
|
Аналогично процедуре `ОпределитьПараметрыЗагрузкиДанныхИзФайла` (см. статью `2. Настраиваемые алгоритмы загрузки в справочники`). Может быть пустой
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
// Переопределяет параметры загрузки данных из файла.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Параметры - Структура:
|
||||||
|
// * ИмяМакетаСШаблоном - Строка - наименование макета. Например, "ЗагрузкаИзФайла".
|
||||||
|
// * ИмяТабличнойЧасти - Строка - полное имя табличной части. Например, "Документ._ДемоСчетНаОплатуПокупателю.ТабличнаяЧасть.Товары"
|
||||||
|
// * ОбязательныеКолонки - Массив из Строка - наименования обязательных для заполнения колонок.
|
||||||
|
// * ТипДанныхКолонки - Соответствие из КлючИЗначение:
|
||||||
|
// * Ключ - Строка - имя колонки;
|
||||||
|
// * Значение - ОписаниеТипов - тип колонки загружаемых данных.
|
||||||
|
// * ДополнительныеПараметры - Структура
|
||||||
|
//
|
||||||
|
Процедура УстановитьПараметрыЗагрузкиИзФайлаВТЧ(Параметры) Экспорт
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
||||||
|
|
||||||
|
## Процедура СопоставитьЗагружаемыеДанные
|
||||||
|
|
||||||
|
В этой процедуре необходимо заполнить таблицу, находящуюся по адресу `АдресТаблицыСопоставления`
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
// АдресЗагружаемыхДанных - Строка - адрес временного хранилища с таблицей значений, в которой
|
||||||
|
// находятся загруженные данные из файла. Состав колонок:
|
||||||
|
// * Идентификатор - Число - порядковый номер строки.
|
||||||
|
// Остальные колонки соответствуют колонкам макета ЗагрузкаИзФайла.
|
||||||
|
// АдресТаблицыСопоставления - Строка - адрес временного хранилища с пустой таблицей значений,
|
||||||
|
// являющейся копией табличной части документа,
|
||||||
|
// которую необходимо заполнить из таблицы АдресЗагружаемыхДанных.
|
||||||
|
// СписокНеоднозначностей - ТаблицаЗначений - список неоднозначных значений:
|
||||||
|
// * Колонка - Строка - имя колонки, в которой была обнаружена неоднозначность.
|
||||||
|
// * Идентификатор - Число - идентификатор строки, в которой была обнаружена неоднозначность.
|
||||||
|
// ПолноеИмяТабличнойЧасти - Строка - полное имя табличной части, в которую загружаются данные.
|
||||||
|
// ДополнительныеПараметры - Произвольный - любые дополнительные сведения.
|
||||||
|
Процедура СопоставитьЗагружаемыеДанные(АдресЗагружаемыхДанных, АдресТаблицыСопоставления, СписокНеоднозначностей, ПолноеИмяТабличнойЧасти, ДополнительныеПараметры) Экспорт
|
||||||
|
```
|
||||||
|
|
||||||
|
|Аргумент|Описание|
|
||||||
|
|-|-|
|
||||||
|
|`АдресЗагружаемыхДанных`|По этому адресу расположена таблица значений, заполненная на основании введенных пользователем данных в форме обработки|
|
||||||
|
|`АдресТаблицыСопоставления`|По этому адресу расположена копия табличной части документа/справочника, которую необходимо заполнить|
|
||||||
|
|`СписокНеоднозначностей`|Таблица, в которую записываются идентификаторы строк ТЧ, для которых не удалось однозначно определить сопоставляемые данные|
|
||||||
|
|
||||||
|
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">
|
||||||
|
<summary style="font-weight: bold; cursor: pointer;">Пример реализации</summary>
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
Процедура СопоставитьЗагружаемыеДанные(АдресЗагружаемыхДанных, АдресТаблицыСопоставления, СписокНеоднозначностей, ПолноеИмяТабличнойЧасти, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
|
||||||
|
Товары = ПолучитьИзВременногоХранилища(АдресТаблицыСопоставления); // ТаблицаЗначений
|
||||||
|
ЗагружаемыеДанные = ПолучитьИзВременногоХранилища(АдресЗагружаемыхДанных); // ТаблицаЗначений
|
||||||
|
|
||||||
|
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
|
||||||
|
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
|
||||||
|
Запрос.Текст =
|
||||||
|
"ВЫБРАТЬ
|
||||||
|
| ВЫРАЗИТЬ(ДанныеДляСопоставления.Штрихкод КАК СТРОКА(13)) КАК Штрихкод,
|
||||||
|
| ДанныеДляСопоставления.Номенклатура КАК Номенклатура,
|
||||||
|
| ДанныеДляСопоставления.Идентификатор КАК Идентификатор
|
||||||
|
|ПОМЕСТИТЬ ДанныеДляСопоставления
|
||||||
|
|ИЗ
|
||||||
|
| &ДанныеДляСопоставления КАК ДанныеДляСопоставления
|
||||||
|
|;
|
||||||
|
|
|
||||||
|
|////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|ВЫБРАТЬ
|
||||||
|
| _ДемоНоменклатура.Ссылка КАК Ссылка,
|
||||||
|
| _ДемоНоменклатура.Штрихкод КАК Штрихкод,
|
||||||
|
| ДанныеДляСопоставления.Идентификатор КАК Идентификатор
|
||||||
|
|ПОМЕСТИТЬ СопоставленнаяНоменклатураПоШтрихкоду
|
||||||
|
|ИЗ
|
||||||
|
| ДанныеДляСопоставления КАК ДанныеДляСопоставления
|
||||||
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник._ДемоНоменклатура КАК _ДемоНоменклатура
|
||||||
|
| ПО (_ДемоНоменклатура.Штрихкод = ДанныеДляСопоставления.Штрихкод)
|
||||||
|
| И (ДанныеДляСопоставления.Штрихкод <> """")
|
||||||
|
|
|
||||||
|
|ИНДЕКСИРОВАТЬ ПО
|
||||||
|
| Идентификатор
|
||||||
|
|;
|
||||||
|
|
|
||||||
|
|////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|ВЫБРАТЬ
|
||||||
|
| ДанныеДляСопоставления.Номенклатура КАК Номенклатура,
|
||||||
|
| ДанныеДляСопоставления.Идентификатор КАК Идентификатор
|
||||||
|
|ПОМЕСТИТЬ ДанныеДляСопоставленияПоНаименованию
|
||||||
|
|ИЗ
|
||||||
|
| ДанныеДляСопоставления КАК ДанныеДляСопоставления
|
||||||
|
| ЛЕВОЕ СОЕДИНЕНИЕ СопоставленнаяНоменклатураПоШтрихкоду КАК СопоставленнаяНоменклатураПоШтрихкоду
|
||||||
|
| ПО ДанныеДляСопоставления.Идентификатор = СопоставленнаяНоменклатураПоШтрихкоду.Идентификатор
|
||||||
|
|ГДЕ СопоставленнаяНоменклатураПоШтрихкоду.Идентификатор ЕСТЬ NULL
|
||||||
|
|
|
||||||
|
|ИНДЕКСИРОВАТЬ ПО
|
||||||
|
| Идентификатор
|
||||||
|
|;
|
||||||
|
|
|
||||||
|
|////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|ВЫБРАТЬ
|
||||||
|
| МАКСИМУМ(_ДемоНоменклатура.Ссылка) КАК Ссылка,
|
||||||
|
| ДанныеДляСопоставленияПоНаименованию.Идентификатор КАК Идентификатор,
|
||||||
|
| КОЛИЧЕСТВО(ДанныеДляСопоставленияПоНаименованию.Идентификатор) КАК Количество
|
||||||
|
|ИЗ
|
||||||
|
| ДанныеДляСопоставленияПоНаименованию КАК ДанныеДляСопоставленияПоНаименованию
|
||||||
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник._ДемоНоменклатура КАК _ДемоНоменклатура
|
||||||
|
| ПО (_ДемоНоменклатура.Наименование = (ВЫРАЗИТЬ(ДанныеДляСопоставленияПоНаименованию.Номенклатура КАК СТРОКА(500))))
|
||||||
|
|
|
||||||
|
|СГРУППИРОВАТЬ ПО
|
||||||
|
| ДанныеДляСопоставленияПоНаименованию.Идентификатор
|
||||||
|
|
|
||||||
|
|ОБЪЕДИНИТЬ ВСЕ
|
||||||
|
|
|
||||||
|
|ВЫБРАТЬ
|
||||||
|
| МАКСИМУМ(СопоставленнаяНоменклатураПоШтрихкоду.Ссылка),
|
||||||
|
| СопоставленнаяНоменклатураПоШтрихкоду.Идентификатор,
|
||||||
|
| КОЛИЧЕСТВО(СопоставленнаяНоменклатураПоШтрихкоду.Идентификатор)
|
||||||
|
|ИЗ
|
||||||
|
| СопоставленнаяНоменклатураПоШтрихкоду КАК СопоставленнаяНоменклатураПоШтрихкоду
|
||||||
|
|
|
||||||
|
|СГРУППИРОВАТЬ ПО
|
||||||
|
| СопоставленнаяНоменклатураПоШтрихкоду.Идентификатор";
|
||||||
|
|
||||||
|
Запрос.УстановитьПараметр("ДанныеДляСопоставления", ЗагружаемыеДанные);
|
||||||
|
РезультатыЗапросов = Запрос.ВыполнитьПакет(); // Массив из РезультатЗапроса
|
||||||
|
|
||||||
|
ТаблицаНоменклатура = РезультатыЗапросов[3].Выгрузить(); // ТаблицаЗначений
|
||||||
|
ФункциональнаяОпцияХарактеристика = ?(ЗагружаемыеДанные.Колонки.Найти("Характеристика") <> Неопределено, Истина, Ложь);
|
||||||
|
Для каждого СтрокаТаблицы Из ЗагружаемыеДанные Цикл
|
||||||
|
|
||||||
|
Товар = Товары.Добавить();
|
||||||
|
Товар.Идентификатор = СтрокаТаблицы.Идентификатор;
|
||||||
|
Товар.Количество = СтрокаТаблицы.Количество;
|
||||||
|
Товар.Цена = СтрокаТаблицы.Цена;
|
||||||
|
|
||||||
|
СтрокаНоменклатура = ТаблицаНоменклатура.Найти(СтрокаТаблицы.Идентификатор, "Идентификатор");
|
||||||
|
Если СтрокаНоменклатура <> Неопределено Тогда
|
||||||
|
Если СтрокаНоменклатура.Количество = 1 Тогда
|
||||||
|
Товар.Номенклатура = СтрокаНоменклатура.Ссылка;
|
||||||
|
Если ФункциональнаяОпцияХарактеристика Тогда
|
||||||
|
Товар.Характеристика = Справочники._ДемоХарактеристики.НайтиПоНаименованию(СтрокаТаблицы.Характеристика,
|
||||||
|
Истина,, Товар.Номенклатура);
|
||||||
|
КонецЕсли;
|
||||||
|
ИначеЕсли СтрокаНоменклатура.Количество > 1 Тогда
|
||||||
|
ЗаписьОНеоднозначности = СписокНеоднозначностей.Добавить();
|
||||||
|
ЗаписьОНеоднозначности.Идентификатор = СтрокаТаблицы.Идентификатор;
|
||||||
|
ЗаписьОНеоднозначности.Колонка = "Номенклатура";
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ПоместитьВоВременноеХранилище(Товары, АдресТаблицыСопоставления);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
|
||||||
|
## ЗаполнитьСписокНеоднозначностей
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
// Возвращает список подходящих объектов ИБ для неоднозначного значения ячейки.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ПолноеИмяТабличнойЧасти - Строка - полное имя табличной части, в которую загружаются данные.
|
||||||
|
// СписокНеоднозначностей - Массив из СправочникСсылка._ДемоНоменклатура - массив для заполнения с неоднозначными данными.
|
||||||
|
// ИмяКолонки - Строка - имя колонки, в который возникла неоднозначность.
|
||||||
|
// ЗагружаемыеЗначенияСтрока - Строка - загружаемые данные на основании которых возникла неоднозначность.
|
||||||
|
// ДополнительныеПараметры - Произвольный - любые дополнительные сведения.
|
||||||
|
//
|
||||||
|
Процедура ЗаполнитьСписокНеоднозначностей(ПолноеИмяТабличнойЧасти, СписокНеоднозначностей, ИмяКолонки, ЗагружаемыеЗначенияСтрока, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">
|
||||||
|
<summary style="font-weight: bold; cursor: pointer;">Пример реализации</summary>
|
||||||
|
|
||||||
|
|
||||||
|
// Возвращает список подходящих объектов ИБ для неоднозначного значения ячейки.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ПолноеИмяТабличнойЧасти - Строка - полное имя табличной части, в которую загружаются данные.
|
||||||
|
// СписокНеоднозначностей - Массив из СправочникСсылка._ДемоНоменклатура - массив для заполнения с неоднозначными данными.
|
||||||
|
// ИмяКолонки - Строка - имя колонки, в который возникла неоднозначность.
|
||||||
|
// ЗагружаемыеЗначенияСтрока - Строка - загружаемые данные на основании которых возникла неоднозначность.
|
||||||
|
// ДополнительныеПараметры - Произвольный - любые дополнительные сведения.
|
||||||
|
//
|
||||||
|
Процедура ЗаполнитьСписокНеоднозначностей(ПолноеИмяТабличнойЧасти, СписокНеоднозначностей, ИмяКолонки, ЗагружаемыеЗначенияСтрока, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
Если ИмяКолонки = "Номенклатура" Тогда
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
|
||||||
|
ТекстГде = "";
|
||||||
|
Если ЗначениеЗаполнено(ЗагружаемыеЗначенияСтрока.Номенклатура) Тогда
|
||||||
|
ТекстГде = "ГДЕ _ДемоНоменклатура.Наименование = &Наименование";
|
||||||
|
Запрос.УстановитьПараметр("Наименование", ЗагружаемыеЗначенияСтрока.Номенклатура);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ЗагружаемыеЗначенияСтрока.Штрихкод) Тогда
|
||||||
|
Если ЗначениеЗаполнено(ТекстГде) Тогда
|
||||||
|
ТекстГде = ТекстГде + " ИЛИ _ДемоНоменклатура.Штрихкод = &Штрихкод";
|
||||||
|
Иначе
|
||||||
|
ТекстГде = "ГДЕ _ДемоНоменклатура.Штрихкод = &Штрихкод";
|
||||||
|
КонецЕсли;
|
||||||
|
Запрос.УстановитьПараметр("Штрихкод", ЗагружаемыеЗначенияСтрока.Штрихкод);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Запрос.Текст = "ВЫБРАТЬ
|
||||||
|
| _ДемоНоменклатура.Ссылка
|
||||||
|
|ИЗ
|
||||||
|
| Справочник._ДемоНоменклатура КАК _ДемоНоменклатура " + ТекстГде;
|
||||||
|
|
||||||
|
РезультатЗапроса = Запрос.Выполнить();
|
||||||
|
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||||
|
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||||
|
СписокНеоднозначностей.Добавить(ВыборкаДетальныеЗаписи.Ссылка);
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
</details>
|
@ -0,0 +1,67 @@
|
|||||||
|
---
|
||||||
|
title: Программное создание табличного макета для загрузки данных в табличную часть
|
||||||
|
slug: общие-бсп-стандартные-подсистемы-загрузка-данных-из-файла/программное-создание-табличного-макета-для-загрузки-данных-в-табличную-часть
|
||||||
|
---
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
// Возвращает описание колонок табличной части или таблицы значений.
|
||||||
|
// Синтаксис
|
||||||
|
//
|
||||||
|
// Функция СформироватьОписаниеКолонок(Таблица, Колонки = Неопределено) Экспорт
|
||||||
|
// Параметры
|
||||||
|
//
|
||||||
|
// Таблица - ТаблицаЗначений - ОписаниеТабличнойЧасти с колонками.
|
||||||
|
// - Строка - для получения списка колонок табличной части
|
||||||
|
// необходимо указать его полное имя строкой, как в метаданных, например "Документы.СчетНаОплату.ТабличныеЧасти.Товары".
|
||||||
|
// Колонки - Строка - список извлекаемых колонок, разделенный запятыми. Например: "Номер, Товар, Количество".
|
||||||
|
// Возвращаемое значение
|
||||||
|
//
|
||||||
|
// Массив из см. ЗагрузкаДанныхИзФайлаКлиентСервер.ОписаниеКолонкиМакета.
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ЗагрузитьТоварыИзФайла(Команда)
|
||||||
|
|
||||||
|
ПараметрыЗагрузки = ЗагрузкаДанныхИзФайлаКлиент.ПараметрыЗагрузкиДанных();
|
||||||
|
ПараметрыЗагрузки.ПолноеИмяТабличнойЧасти = "_ДемоНоменклатура.Аналоги";
|
||||||
|
ПараметрыЗагрузки.Заголовок = НСтр("ru = 'Загрузка списка аналогов из файла'");
|
||||||
|
|
||||||
|
// Описание колонок для макета загрузки комплектации
|
||||||
|
ПараметрыЗагрузки.КолонкиМакета = ОписаниеКолонокМакетаДляЗагрузкиАналогов();
|
||||||
|
|
||||||
|
Оповещение = Новый ОписаниеОповещения("ЗагрузитьАналогиИзФайлаЗавершение", ЭтотОбъект);
|
||||||
|
ЗагрузкаДанныхИзФайлаКлиент.ПоказатьФормуЗагрузки(ПараметрыЗагрузки, Оповещение);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Функция ОписаниеКолонокМакетаДляЗагрузкиАналогов();
|
||||||
|
|
||||||
|
КолонкиМакета = ЗагрузкаДанныхИзФайла.СформироватьОписаниеКолонок(Объект.Аналоги);
|
||||||
|
ЗагрузкаДанныхИзФайлаКлиентСервер.УдалитьКолонкуМакета("Аналог", КолонкиМакета);
|
||||||
|
|
||||||
|
Если Объект.ВидНоменклатуры.Наименование = "Услуга" Тогда
|
||||||
|
// У услуг нет штрихкода
|
||||||
|
Колонка = ЗагрузкаДанныхИзФайлаКлиентСервер.ОписаниеКолонкиМакета("ШтрихкодАртикул", ОбщегоНазначения.ОписаниеТипаСтрока(20), НСтр("ru = 'Артикул'"));
|
||||||
|
Иначе
|
||||||
|
Колонка = ЗагрузкаДанныхИзФайлаКлиентСервер.ОписаниеКолонкиМакета("ШтрихкодАртикул", ОбщегоНазначения.ОписаниеТипаСтрока(20), НСтр("ru = 'Штрихкод и Артикул'"));
|
||||||
|
КонецЕсли;
|
||||||
|
Колонка.ОбязательнаДляЗаполнения = Истина;
|
||||||
|
Колонка.Позиция = 1;
|
||||||
|
Колонка.Группа = "Номенклатура";
|
||||||
|
Колонка.Родитель = "Аналог";
|
||||||
|
КолонкиМакета.Добавить(Колонка);
|
||||||
|
|
||||||
|
Колонка = ЗагрузкаДанныхИзФайлаКлиентСервер.ОписаниеКолонкиМакета("Наименование", ОбщегоНазначения.ОписаниеТипаСтрока(100));
|
||||||
|
Колонка.Группа = "Номенклатура";
|
||||||
|
Колонка.Родитель = "Аналог";
|
||||||
|
Колонка.Позиция = 2;
|
||||||
|
Колонка.Подсказка = НСтр("ru='Наименование аналогичного товара, который полностью идентичен
|
||||||
|
|по своему функциональному назначению и техническим характеристикам.'");
|
||||||
|
КолонкиМакета.Добавить(Колонка);
|
||||||
|
|
||||||
|
Колонка = ЗагрузкаДанныхИзФайлаКлиентСервер.КолонкаМакета("Совместимость", КолонкиМакета);
|
||||||
|
Колонка.Позиция = 3;
|
||||||
|
|
||||||
|
Возврат КолонкиМакета;
|
||||||
|
КонецФункции
|
||||||
|
```
|
Loading…
x
Reference in New Issue
Block a user