Полезные функции БСП

01.02.15

Разработка - Универсальные функции

Список часто востребованных, по моему мнению, функций из состава Библиотеки стандартных подсистем 2.2.

Скачать исходный код

Наименование Файл Версия Размер
Список функции БСП (в модуле объекта обработки)
.epf 5,82Kb
57
.epf 5,82Kb 57 Скачать

 

1.
// Возвращает структуру, содержащую значения реквизитов прочитанные из информационной базы
// по ссылке на объект.
ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты)
 
Пример:
РеквизитыКонтрагента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Контрагент, "Наименование, ИНН, КПП");
 
Скажете, что можно написать Контрагент.Наименование проще, чем обращаться к функции, но не многие знают, что обращение через точку считывает значение всех реквизитов объекта, что не производительно для объектов с реквизитами типа ХранилищеЗначения например.
 
2.
// Проверяет наличие ссылок на объект в базе данных
ОбщегоНазначения.ЕстьСсылкиНаОбъект(Знач СсылкаИлиМассивСсылок, Знач ИскатьСредиСлужебныхОбъектов = Ложь,  ДругиеИсключения = Неопределено)
 
Пример:
Если ОбщегоНазначения.ЕстьСсылкиНаОбъект(Контрагент) Тогда
     Продолжить;
КонецЕсли;
 
Можно использовать в своей обработке, например при удалении данных проверять ссылки, к тому же в отличии от встроенной функции НайтиСсылки, работает параметр ИсключаемыеОбъекты, что не есть плохо.
 
3.
//Позволяет определить, есть ли среди реквизитов объекта реквизит с переданным именем
ОбщегоНазначения.ЕстьРеквизитОбъекта(ИмяРеквизита, МетаданныеОбъекта)
 
Пример:
Для Каждого ДокументОбъект Из МассивДокументов Цикл
     Если ОбщегоНазначения.ЕстьРеквизитОбъекта("Организация", ДокументОбъект.Метаданные()) Тогда
          ДокументОбъект.Организация = Организация;
     КонецЕсли;
КонецЦикла;
 
 
4. 
// Получает файл из Интернета по протоколу http(s), либо ftp и сохраняет его по указанному пути на сервере.
ПолучениеФайловИзИнтернета.СкачатьФайлНаСервере(Знач URL, ПараметрыПолучения = Неопределено, Знач ЗаписыватьОшибку = Истина)
 
5.
// Проверяет, является ли текущий или указанный пользователь полноправным.
Пользователи.ЭтоПолноправныйПользователь()
 
Пример:
Если НЕ Пользователи.ЭтоПолноправныйПользователь() Тогда
     ВызватьИсключение НСтр("ru = 'У Вас нет доступа!'");
КонецЕсли;
 
6.
// Получает номер документа для вывода на печать; из номера удаляются префиксы и лидирующие нули
ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь)
 
Пример:
НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать("УТПД-00023", Истина, Истина);
//НомерНаПечать будет равен строке "23"
 
Полезно для тех кто делает дополнительные печатные формы.
 
7.
// Возвращает курс валюты на дату.
РаботаСКурсамиВалют.ПолучитьКурсВалюты(Валюта, ДатаКурса)
 
Пример:
//Получение курса валюты документа на 30 января 2014 года
Курс = РаботаСКурсамиВалют.ПолучитьКурсВалюты(ВалютаДокумента, Дата(2014, 01, 30));
 
8.
// Подставляет параметры в строку. Максимально возможное число параметров - 9.
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Знач СтрокаПодстановки,
     Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено,
     Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено,
     Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено)
 
Очень полезная функция, номер параметра задается знаком процента, пример:
Шаблон = "Недостаточно номенклатуры %1 на складе %2 в количестве %3 шт.";
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Номенклатура, Склад, КоличествоОстаток);
 
Советую более подробно посмотреть все функции модуля СтроковыеФункцииКлиентСервер.

9.
// Открывает Проводник Windows и выделяет указанный файл.
// пример: ""С:\Temp\report.txt"
ФайловыеФункцииСлужебныйКлиент.ОткрытьПроводникСФайлом(Знач ПолноеИмяФайла)
 10.
// Запускает выполнение процедуры в фоновом задании
ДлительныеОперации.ЗапуститьВыполнениеВФоне(Знач ИдентификаторФормы, Знач ИмяЭкспортнойПроцедуры, 
 Знач Параметры, Знач НаименованиеЗадания = "", ИспользоватьДополнительноеВременноеХранилище = Ложь)
Будет полезно для операций длительных по времени, запустили и дали возможность пользователю работать дальше.
 
Для отображения состояния на клиенте существует метод:
ДлительныеОперацииКлиент.ОткрытьФормуДлительнойОперации(Знач ВладелецФормы, Знач ИдентификаторЗадания)
 
Так же выложил обработку с перечнем функций в модуле объекта для изучения по клавише F12.
 
 
 

БСП функции

См. также

Вставляем картинку из буфера обмена (платформа 1С 8.3.24)

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    2915    2    John_d    11    

56

GUID в 1С 8.3 - как с ними быть

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    5138    atdonya    22    

52

Переоткрытие внешних обработок

Универсальные функции Платформа 1С v8.3 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    4129    ke.92@mail.ru    16    

62

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    9480    YA_418728146    6    

143

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2274    26    progmaster    8    

3

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    16392    143    sapervodichka    112    

130

Система контроля ведения учета [БСП]

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    7370    quazare    8    

110
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. OtTech 5 02.02.15 09:34 Сейчас в теме
Вместо этого
ФизЛицо = Пользователи.ТекущийПользователь().ФизическоеЛицо;

Пользователь = Пользователи.ТекущийПользователь();

не проще будет?

Пользователь = ПараметрыСеанса.ТекущийПользователь;
ФизическоеЛицо = ПараметрыСеанса.ТекущийПользователь.ФизическоеЛицо;

Во всех типовых работает без проблем.
3. slazzy 42 02.02.15 10:07 Сейчас в теме
(1) OtTech,
не проще будет?

Проще, но хуже. Всё дело в одном слове - стандартизация. В конфигурациях с использованием БСП рекомендуется использовать процедуры из модуля ПользователиКлиентСервер и никак иначе.
9. AlX0id 02.02.15 22:48 Сейчас в теме
(1) OtTech,
Сегодня это параметр сеанса ТекущийПользователь, завтра - предопределенный элемент справочника, послезавтра - запись регистра сведений (все приведенные данные являются выдумкой автора и совпадения случайны) ) На текущий момент, может быть и проще, в будущем - хуже.
16. kser87 2441 13.03.15 14:34 Сейчас в теме
(1) OtTech,

ФизЛицо = Пользователи.ТекущийПользователь().ФизическоеЛицо;

Пользователь = Пользователи.ТекущийПользователь();

не проще будет?

Пользователь = ПараметрыСеанса.ТекущийПользователь;
ФизическоеЛицо = ПараметрыСеанса.ТекущийПользователь.ФизическоеЛицо;

Не проверял, но скорее всего БСП-шная функция засунута в повторное использование. Поэтому типовую использовать правильнее
2. Liily 02.02.15 10:01 Сейчас в теме
этот код вообще не рабочий, если внимательно посмотреть

Всё работает.. СП пишет:

Глобальный контекст (Global context)
ПользователиИнформационнойБазы (InfoBaseUsers)
Использование:
Только чтение.
Описание:
Тип: МенеджерПользователейИнформационнойБазы.
Используется для управления списком пользователей информационной базы.
Доступность:
Сервер, толстый клиент, внешнее соединение.

Функции полезные. Имеет смысл вообще поразбираться в БСП и использовать уже написанные функции, чтобы не изобретать велосипед.
6. ediks 335 02.02.15 10:30 Сейчас в теме
(2) Вы хотите сказать, что у функция ПользователиИнформационнойБазы.ТекущийПользователь() возвращает элемент справочника Пользователи?
Мне кажется, что Вы ошибаетесь, и код действительно нерабочий.
МенеджерПользователейИнформационнойБазы.ТекущийПользователь (InfoBaseUsersManager.CurrentUser)
МенеджерПользователейИнформационнойБазы (InfoBaseUsersManager)
ТекущийПользователь (CurrentUser)
Синтаксис:

ТекущийПользователь()
Возвращаемое значение:

Тип: ПользовательИнформационнойБазы.
Описание пользователя, аутентифицированного в текущем сеансе. Если список пользователей информационной базы пустой, то в качестве текущего пользователя будет возвращен пользователь с пустым именем и идентификатором объекта, полученного методом НайтиПоИмени, если в параметре указано пустое имя.
7. Liily 02.02.15 10:48 Сейчас в теме
(6)
Мне кажется, что Вы ошибаетесь, и код действительно нерабочий.

Точно.. Посмотрела повнимательней. Именно так не работает. Извините.
8. spec8s 830 02.02.15 14:11 Сейчас в теме
(7) Liily, нерабочий, тут нужно внимательнее смотреть на тип получаемого значения.
4. davdykin 25 02.02.15 10:10 Сейчас в теме
В свете вышесказанного, а как можно с ней поразбираться? Т.е. есть какая-либо справочная информация по ней?
artichoke; +1 Ответить
5. slazzy 42 02.02.15 10:16 Сейчас в теме
(4) davdykin, вообще во всех модулях из БСП есть программный интерфейс(важные функции для работы) и они детально описаны, заходите - читаете :) в основном самые частые функции в модулях ОбщегоНазначения... таких модулей как минимум несколько. Ну и на ИТС есть документация по БСП
davdykin; +1 Ответить
18. nixel 1408 13.01.16 13:55 Сейчас в теме
10. chmv 03.02.15 09:59 Сейчас в теме
Библиотека нужна, но лучше бы её писала сама фирма 1с
13. RomanBor 116 05.02.15 07:27 Сейчас в теме
(10) chmv,
Библиотека нужна, но лучше бы её писала сама фирма 1с

вроде бы и пишет сама 1С называется Библиотека Стандартный Подсистем, или я чего то не знаю
Hogyoku; Monte Carlo; +2 Ответить
11. rasswet 82 04.02.15 10:59 Сейчас в теме
спасибо за хорошее оформление и наличие примеров.
Gendelf; kuzyara; chmv; spec8s; +4 Ответить
12. ~ADm!t_@vd~ 30 04.02.15 14:11 Сейчас в теме
Плюсую. Для себя по мере надобности тоже выдергиваю обращения к БСП и общим модулям, в виде шаблонов, чтобы потом не искать...
14. chmv 05.02.15 12:54 Сейчас в теме
Я имею ввиду стандартные конфигурации + встроенные функции системы
15. jobkostya1c_ERP 100 06.03.15 09:26 Сейчас в теме
Также программисту-разработчику полезно знать и заглядывать при доработке типовых конфигураций в первую очередь в общие модули (ОбщегоНазначения, ОбщегоНазначенияКлиентСервер, ОбработкаТабличныхЧастей, где прячутся очень нужные, универсальные функции и обычно без привязки к структуре метаданных. Если за 2 минуты ничего не приглянулось, приходится писать самому :( Вот только в модуле ОбщегоНазначения на примере Розницы 1.0 столько же полезного:
- Функция ЭтоСсылка(Тип) Экспорт
// Проверить, что значение имеет ссылочный тип данных.
//
// Параметры:
// Значение - ссылка на объект, - элемент справочника, документ, ...
//
// Возвращаемое значение:
// Булево - Истина, если тип значения ссылочный.
//
2. Функция ЗначениеСсылочногоТипа(Значение) Экспорт
3. // Проверяет физическое наличие записи в информационной базе данных о переданном значении ссылки
//
// Параметры:
// ЛюбаяСсылка - значение любой ссылки информационной базы данных
//
// Возвращаемое значение:
// Истина - ссылка физически существует;
// Ложь - ссылка физически не существует
//
Функция СсылкаСуществует(ЛюбаяСсылка) Экспорт
Функция ЕстьНеЦифры(Знач СтрокаПроверки) Экспорт
Функция ПолучитьВладельцаХарактеристики(Номенклатура) Экспорт
Функция ПолучитьЗначениеПеременной(ИмяПараметра, Кэш = Неопределено, КэшИзменен = Ложь) Экспорт - Вот эта фунция при использвании в обработках проведения документов и перелопачиванию справочников позволяет в разы убыстрить работу, т.к. переменные читаются из базы только один раз и остаются в ОЗУ.
Процедура ЗаписатьНаборЗаписейНаСервере(ИмяРегистра, Регистратор, ТаблицаДвижений = Неопределено) Экспорт
Продолжать можно бесконечно. Самое веселое, что не найдешь функцию, напишешь, а потом вот она под носом была :)
Прикрепленные файлы:
ybatiaev; Yan_Malyakov; deevil; Shmell; kentavr27; diliak72; spec8s; +7 Ответить
17. vitaliy1911 38 16.06.15 20:17 Сейчас в теме
меня всегда дико радовала функция Просклонять в общем модуле ОбщегоНазначения. как она работает - загадка, но для различных отчетов вещь незаменимая
jobkostya1c_ERP; user633364_seleznev.ua; Vortigaunt; +3 Ответить
19. DrAku1a 1717 06.09.16 03:08 Сейчас в теме
1. - Костыль, фирменный - от 1С.
3. - Есть реквизит в метаданных, серьёзно? За этим - в отдельный модуль ходить?
МетаданныеОбъекта.Реквизиты.Найти(ИмяРеквизита)<>неопределено

6. Оставляем только цифры от номера (без лидирующих нулей):
Цифры="123456789";
НомерОбъекта = СтрЗаменить(СтрЗаменить(СокрЛП(НомерОбъекта), " ", ""), Символы.НПП, "");
Пока НомерОбъекта<>"" и Найти(Цифры, Лев(НомерОбъекта, 1)=0 Цикл
НомерОбъекта = Сред(НомерОбъекта, 2);
КонецЦикла;
Это ещё - не самый оптимальный вариант.

PS.В целом же, модуль содержит много полезных и нужных функций.
20. herfis 499 06.09.16 09:41 Сейчас в теме
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку

С 8.3.6 реализовано функцией платформы "СтрШаблон"
Гораздо удобнее пользовать именно ее, т.к. вызов гораздо короче и код читабельнее выходит.
А БСПшную скорее всего в очередной версии библиотеки задиприкейтят.
Merkalov; programmer_87; d4rkmesa; +3 Ответить
21. capitan 2472 06.09.16 10:08 Сейчас в теме
Идея хорошая, сам год назад пытался сделать вики в интернете по БСП, но не взлетело.
Тут надо всем сообществом браться и делать что-то типа синтаксис помощника хотьбы и chm.
Подозреваю у самих 1С он есть - а так надо из текстов модулей парсить.
К тому же периодически 1С перетасовывает карты. И функции которые прекрасно работали канут в лету.

Жизнь — странная штука. Когда у тебя на руках все козыри, она делает ход конем.
22. herfis 499 06.09.16 12:56 Сейчас в теме
Идея хорошая, сам год назад пытался сделать вики в интернете по БСП, но не взлетело. 

Понятно, почему не взлетело. Ведь идея так себе - скорее для новеньких/ленивых.
Опытный разработчик обычно всегда знакомится с докой и API новых для него подсистем, чтобы не изобретать велосипедов и писать хороший код.
Если новую конфу в руки берешь - первым делом общие модуля листаешь.
23. capitan 2472 08.09.16 12:52 Сейчас в теме
(22) herfis,
Если новую конфу в руки берешь - первым делом общие модуля листаешь.

А не упаришься общие модуля читать ?
Сами 1С частенько не знают что у них в соседних модулях есть.
Хочется примера? набери в глобальном поиске Новый ФТПСоединение
В том то и дело, что у всех мало мальски приличных систем апи документирован.
Намедни на aliexpess читал апи. Оченнно даже приличное апи.
В гуглопереводе с китайского )
nightowl5; wolfsoft; ram3; redtram; blackjack666; +5 Ответить
24. c300pm 08.09.16 13:15 Сейчас в теме
25. rusikgluki 12.09.16 00:50 Сейчас в теме
большое спасибо за ооочень хорошую статью..
26. binx 167 23.09.16 19:08 Сейчас в теме
Жаль только что у 1С нет публичного справочника функций стандартных подсистем
27. shumvlesu 14.12.17 11:21 Сейчас в теме
29. logarifm 1120 05.10.19 20:13 Сейчас в теме
Как говорится не знание закона не освобождает от ответственности! Все в 1С есть и очень даже хорошо описано. В т.ч. с примерами
30. binx 167 07.10.19 09:46 Сейчас в теме
за 3 года что-то могло измениться
31. qazaz2 16 11.03.20 12:31 Сейчас в теме
Прикольно, 279 "+" и 1 "-". Можно кучу предположений сделать об аудитории)
32. sondarium 177 09.03.23 18:49 Сейчас в теме
РаботаСКурсамиВалют.ПолучитьКурсВалюты(Валюта, ДатаКурса)

Получает последнее значение на указанную дату. Если по какой-то причине в регистре курсов нет значения за указанную дату (например, если файлы с курсами были недоступны в какой-то момент для ip определённых зон), то выдаст неверное значение, взятое из предыдущего периода, что может быть критичным.

Можно как-то так, примерно:
Функция КурсВалютыНаДату(Вход_Валюта, Вход_Дата = Неопределено) Экспорт
	Если НЕ ЗначениеЗаполнено(Вход_Валюта) Тогда Возврат Новый Структура("Курс,Кратность", 0, 0); КонецЕсли;
	Запрос = Новый Запрос("ВЫБРАТЬ
	                      |	КурсыВалют.Курс КАК Курс,
	                      |	КурсыВалют.Кратность КАК Кратность
	                      |ИЗ
	                      |	РегистрСведений.КурсыВалют КАК КурсыВалют
	                      |ГДЕ
	                      |	КурсыВалют.Валюта = &Валюта
	                      |	И КурсыВалют.Период = &Период");
	Запрос.УстановитьПараметр("Валюта", Вход_Валюта);
	Запрос.УстановитьПараметр("Период", НачалоДня(?(Вход_Дата = Неопределено, ТекущаяДатаСеанса(), Вход_Дата)));
	Запрос_Выборка = Запрос.Выполнить().Выбрать();
	Возврат ?(Запрос_Выборка.Следующий(), Новый Структура("Курс,Кратность", Запрос_Выборка["Курс"], Запрос_Выборка["Кратность"]), Новый Структура("Курс,Кратность", 0, 0));
КонецФункции
Показать
33. ledidinka 17.05.23 12:39 Сейчас в теме
"Скажете, что можно написать Контрагент.Наименование проще, чем обращаться к функции, но не многие знают, что обращение через точку считывает значение всех реквизитов объекта, что не производительно для объектов с реквизитами типа ХранилищеЗначения например."

Означает ли это, что если обращаться "через точку" к объекту не имеющему реквизитов с типом ХЗ - правильно или допустимо?

Столкнулась с данной "проблемой" в печатной форме. Экспериментально установила, что обращение через точку выполняется в десятки раз быстрее (даже для получения 3х реквизитов одного объекта). Но EDT при проверке кода подсвечивает данную "ошибку". Как доказать заказчику, что использование функции БСП снижает производительность?
34. binx 167 17.05.23 16:47 Сейчас в теме
(33) Нет не правильно, если документ содержит табличную часть с 100500 строк, то считается весь объект со всеми строками.
35. kser87 2441 17.05.23 23:14 Сейчас в теме
(34) в табличной части не может быть столько строк. И все зависит от контекста ситуации, поэтому вполне допустимо что обращение через точку может работать быстрее запросов.
36. ledidinka 18.05.23 12:30 Сейчас в теме
(35) Не просто быстрее, а в 10-20 раз быстрее в моей задаче (ПФ в ЗУП). Но заказчик непреклонен - буду переписывать.
38. binx 167 19.05.23 10:59 Сейчас в теме
(35) 100500 это число-мем 🤣
а так да вроде как 99 999 строк
39. kser87 2441 19.05.23 11:40 Сейчас в теме
(38) да, я понял. В любом случае, смотреть надо на конкретную ситуацию. Без корректных замеров исправлять не имеет смысла
37. kser87 2441 18.05.23 13:32 Сейчас в теме
(36) тут можно сослаться на книжку по Эксперту и сказать, что плохой код не является основанием для переделки. Надо смотреть на контекст ситуации
40. Новичок1с 4 06.07.23 14:17 Сейчас в теме
Доброго дня.

РеквизитыКонтрагента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Контрагент, "Наименование, ИНН, КПП"); 


Подскажите пожалуйста, а как затем в печатную форму вставить полученные значения??
Я создала Таблицу значений, значения есть. А вот с выводом не понятно
41. Новичок1с 4 06.07.23 18:35 Сейчас в теме
(40)
Нашла самостоятельно подходящее решение

РеквизитыКонтрагента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.Контрагент, "Наименование, ИНН, КПП");
	ТабКонтрагент = Новый ТаблицаЗначений;
	НоваяСтрока 			= ТабКонтрагент.Добавить();	
	
	МассивТипов = Новый Массив;

	Для Каждого Элемент Из РеквизитыКонтрагента Цикл
			МассивТипов.Добавить(ТипЗнч(Элемент.Значение));        
		    ТабКонтрагент.Колонки.Добавить(Элемент.Ключ, Новый ОписаниеТипов(МассивТипов));    
			
			НоваяСтрока[Элемент.Ключ] = Элемент.Значение;

	  КонецЦикла; //Каждого Элемент Из РеквизитыКонтрагента Цикл 
Показать
42. spec8s 830 07.07.23 11:42 Сейчас в теме
(41)Не очень понятно зачем эти данные в таблицу значений выгружать, видимо, не до конца разобрались с табличным документом.
Оставьте свое сообщение