Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:1c:coding [2019/02/28 05:45] anton |
wiki:1c:coding [2024/05/08 02:04] (текущий) anton |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
==== Кодинг ==== | ==== Кодинг ==== | ||
+ | === Методика тестирования внешних обработок (дополнительные отчеты и обработки) === | ||
+ | < | ||
+ | # | ||
+ | |||
+ | // Процедура - Запуск отладки | ||
+ | // | ||
+ | // Параметры: | ||
+ | // АдресОбработки - " | ||
+ | // | ||
+ | Процедура ЗапускОтладки(АдресОбработки, | ||
+ | |||
+ | Если АдресОбработки <> ЭтотОбъект.ИспользуемоеИмяФайла Тогда | ||
+ | Обр = ВнешниеОбработки.Создать(АдресОбработки); | ||
+ | Обр.Печать(МассивОбъектов, | ||
+ | КонецЕсли; | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | # | ||
+ | |||
+ | # | ||
+ | |||
+ | Процедура Печать(МассивОбъектов, | ||
+ | |||
+ | // Отладка | ||
+ | // | ||
+ | КонецПроцедуры | ||
+ | # | ||
+ | </ | ||
+ | === Вывод ТЗ в печ форму === | ||
+ | < | ||
+ | // Возвращает табличный документ на основании таблицы значений | ||
+ | // | ||
+ | // Параметры: | ||
+ | // ДанныеВТабличныйДокумент - ТаблицаЗначений | ||
+ | // | ||
+ | & | ||
+ | Функция ДанныеТаблицыЗначенийВТабличныйДокумент(ДанныеВТабличныйДокумент) | ||
+ | |||
+ | ТабличныйДокумент = Новый ТабличныйДокумент; | ||
+ | Построитель = Новый ПостроительОтчета; | ||
+ | Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ДанныеВТабличныйДокумент); | ||
+ | Построитель.Вывести(ТабличныйДокумент); | ||
+ | |||
+ | Возврат ТабличныйДокумент; | ||
+ | |||
+ | КонецФункции // ДанныеТаблицыЗначенийВТабличныйДокумент() | ||
+ | </ | ||
=== Изменение имени переменной в цикле === | === Изменение имени переменной в цикле === | ||
Строка 11: | Строка 59: | ||
| | ||
КонецФункции | КонецФункции | ||
+ | </ | ||
+ | |||
+ | === Запуск обработки из макета внешней обработки === | ||
+ | * Добавляем внешнюю обработку для запуска как макет с типом " | ||
+ | * В модуле обработки пишем функцию: | ||
+ | < | ||
+ | & | ||
+ | Функция ПолучитьОбмен_Данными_XML_2_1_7() | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | КонецФункции | ||
+ | </ | ||
+ | * На форме обработки создаем событие :" | ||
+ | < | ||
+ | & | ||
+ | Процедура ПриОткрытии(Отказ) | ||
+ | | ||
+ | // Откроем форму подключенной внешней обработки | ||
+ | | ||
+ | // | ||
+ | КонецПроцедуры | ||
+ | |||
+ | & | ||
+ | Функция ПодключитьВнешнююОбработку() | ||
+ | | ||
+ | КонецФункции | ||
+ | </ | ||
+ | |||
+ | === Разбивка строки по разделителю на подстроки === | ||
+ | < | ||
+ | #Если ТолстыйКлиентОбычноеПриложение Тогда | ||
+ | Если Счетчик % 100 = 0 Тогда | ||
+ | | ||
+ | КонецЕсли; | ||
+ | # | ||
+ | // | ||
+ | Стр = СтрЗаменить(ФайлОтчета.ПолучитьСтроку(Счетчик), | ||
+ | Дата = СтрПолучитьСтроку(Стр, | ||
+ | Время = СтрПолучитьСтроку(Стр, | ||
+ | НомерЧека | ||
+ | Сумма = СтрПолучитьСтроку(Стр, | ||
+ | </ | ||
+ | |||
+ | === Прибавляет Нужное количество рабочих дней к дате === | ||
+ | [[https:// | ||
+ | < | ||
+ | | ||
+ | // | ||
+ | РабочихДней = 0; | ||
+ | ОбычныхДней = 0; | ||
+ | Пока РабочихДней <= Число(КолвоДней) Цикл | ||
+ | ОбычныхДней = ОбычныхДней+ 1; | ||
+ | // определим день недели | ||
+ | ДеньНедели=ДеньНедели(НачДата+(ОбычныхДней*86400)); | ||
+ | // если не выходной, | ||
+ | Если ДеньНедели < 6 Тогда | ||
+ | РабочихДней=РабочихДней+1; | ||
+ | КонецЕсли; | ||
+ | КонецЦикла; | ||
+ | |||
+ | Возврат (НачДата + (ОбычныхДней*86400)); | ||
+ | КонецФункции | ||
+ | </ | ||
+ | === Читает текст с разделителями в ТЗ === | ||
+ | Разделитель в данном случае - ";" | ||
+ | < | ||
+ | | ||
+ | Реализации = Новый ТаблицаЗначений; | ||
+ | Реализации.Колонки.Добавить(" | ||
+ | Реализации.Колонки.Добавить(" | ||
+ | Реализации.Колонки.Добавить(" | ||
+ | Реализации.Колонки.Добавить(" | ||
+ | // загрузим текст | ||
+ | Текст = Новый ТекстовыйДокумент; | ||
+ | Текст.Прочитать(ПутьКФайлу+" | ||
+ | КоличествоСтрок = Текст.КоличествоСтрок(); | ||
+ | Инд = 1; | ||
+ | Пока Инд <= КоличествоСтрок Цикл | ||
+ | Стр = СтрЗаменить(Текст.ПолучитьСтроку(Инд),";", | ||
+ | СтрТЗ = Реализации.Добавить(); | ||
+ | СтрТЗ.Номер = СокрЛП(СтрПолучитьСтроку(Стр, | ||
+ | СтрТЗ.Дата = СтрПолучитьСтроку(Стр, | ||
+ | СтрТЗ.Сумма = СтрПолучитьСтроку(Стр, | ||
+ | СтрТЗ.ИНН = СтрПолучитьСтроку(Стр, | ||
+ | Инд = Инд + 1; | ||
+ | КонецЦикла; | ||
+ | Возврат Реализации // возвращаем ТЗ | ||
+ | | ||
+ | </ | ||
+ | |||
+ | === Журналирование (Логирование) работы обработки в *.txt === | ||
+ | В имени файла слова должны идти через " | ||
+ | < | ||
+ | | ||
+ | Путь = ПутьКФайлу+" | ||
+ | Журнал = Новый ТекстовыйДокумент; | ||
+ | Журнал.ДобавитьСтроку(" | ||
+ | Журнал.Записать(Путь); | ||
+ | Возврат Журнал | ||
+ | | ||
+ | </ | ||
+ | === Генерация корректной ТЗ для запроса === | ||
+ | В имени файла слова должны идти через " | ||
+ | < | ||
+ | | ||
+ | // описание типов в тз | ||
+ | КС50 = Новый КвалификаторыСтроки(50); | ||
+ | КС100 = Новый КвалификаторыСтроки(100); | ||
+ | КЧ = Новый КвалификаторыЧисла(3, | ||
+ | Массив = Новый Массив; | ||
+ | Массив.Добавить(Тип(" | ||
+ | ОписаниеТиповС50 = Новый ОписаниеТипов(Массив, | ||
+ | Массив.Очистить(); | ||
+ | Массив.Добавить(Тип(" | ||
+ | ОписаниеТиповС100 = Новый ОписаниеТипов(Массив, | ||
+ | Массив.Очистить(); | ||
+ | Массив.Добавить(Тип(" | ||
+ | ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, | ||
+ | Товар = Новый ТаблицаЗначений; | ||
+ | Товар.Колонки.Добавить(" | ||
+ | Товар.Колонки.Добавить(" | ||
+ | Товар.Колонки.Добавить(" | ||
+ | Товар.Колонки.Добавить(" | ||
+ | Товар.Колонки.Добавить(" | ||
+ | Возврат Товар | ||
+ | | ||
+ | </ | ||
+ | |||
+ | === Код модуля обработки/ | ||
+ | Тестировалось на УТ 11.1 платформа 8.3. Нужно добавить код в модуль отчета/ | ||
+ | < | ||
+ | | ||
+ | |||
+ | ПараметрыРегистрации = Новый Структура; | ||
+ | МассивНазначений = Новый Массив; | ||
+ | МассивНазначений.Добавить("" | ||
+ | |||
+ | ИмяОтчета = Метаданные().Представление(); | ||
+ | |||
+ | ПараметрыРегистрации.Вставить(" | ||
+ | ПараметрыРегистрации.Вставить(" | ||
+ | ПараметрыРегистрации.Вставить(" | ||
+ | ПараметрыРегистрации.Вставить(" | ||
+ | ПараметрыРегистрации.Вставить(" | ||
+ | ПараметрыРегистрации.Вставить(" | ||
+ | |||
+ | ТаблицаКоманд = ПолучитьТаблицуКоманд(); | ||
+ | |||
+ | ДобавитьКоманду(ТаблицаКоманд, | ||
+ | |||
+ | ПараметрыРегистрации.Вставить(" | ||
+ | |||
+ | Возврат ПараметрыРегистрации; | ||
+ | КонецФункции | ||
+ | |||
+ | Функция ПолучитьТаблицуКоманд() | ||
+ | Команды = Новый ТаблицаЗначений; | ||
+ | Команды.Колонки.Добавить(" | ||
+ | Команды.Колонки.Добавить(" | ||
+ | Команды.Колонки.Добавить(" | ||
+ | Команды.Колонки.Добавить(" | ||
+ | Команды.Колонки.Добавить(" | ||
+ | Возврат Команды; | ||
+ | КонецФункции | ||
+ | |||
+ | Процедура ДобавитьКоманду(ТаблицаКоманд, | ||
+ | НоваяКоманда = ТаблицаКоманд.Добавить(); | ||
+ | НоваяКоманда.Представление = Представление; | ||
+ | НоваяКоманда.Идентификатор = Идентификатор; | ||
+ | НоваяКоманда.Использование = Использование; | ||
+ | НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; | ||
+ | НоваяКоманда.Модификатор = Модификатор; | ||
+ | КонецПроцедуры | ||
+ | |||
+ | </ | ||
+ | === Вывод в Word === | ||
+ | |||
+ | ПутьКФайлуМакетаНаКлиенте - путь к файлу Word для заполнения | ||
+ | РеквизитыДляПечати - структура, | ||
+ | < | ||
+ | |||
+ | & | ||
+ | Функция ПодготовкаПечати(ВидДоговораДляПечати) | ||
+ | |||
+ | РеквизитыДляПечати = РеквизитФормыВЗначение(" | ||
+ | |||
+ | Возврат | ||
+ | |||
+ | КонецФункции | ||
+ | |||
+ | & | ||
+ | Процедура Печать(Команда) | ||
+ | РеквизитыДляПечати = ПодготовкаПечати(ВидДоговора); | ||
+ | // Выводим Договор ИТС | ||
+ | ДвоичныеДанные = ПолучитьИзВременногоХранилища(РеквизитыДляПечати.Договор_ИТС); | ||
+ | ПутьКФайлуМакетаНаКлиенте = КаталогВременныхФайлов()+" | ||
+ | ДвоичныеДанные.Записать(ПутьКФайлуМакетаНаКлиенте); | ||
+ | ПечатьПФ_DOC(ПутьКФайлуМакетаНаКлиенте, | ||
+ | КонецПроцедуры | ||
+ | |||
+ | & | ||
+ | Процедура ПечатьПФ_DOC(ПутьКФайлуМакетаНаКлиенте, | ||
+ | Попытка | ||
+ | ОбъектВорд = Новый COMОбъект(" | ||
+ | |||
+ | ОбъектВорд.Documents.Open(ПутьКФайлуМакетаНаКлиенте); | ||
+ | Док = ОбъектВорд.Application.Documents(1); | ||
+ | Док.Activate(); | ||
+ | |||
+ | Для каждого Закладка Из Док.Bookmarks Цикл | ||
+ | | ||
+ | Док.Bookmarks(Закладка.Name).Select(); | ||
+ | Док.Application.Selection.TypeText(Значение); | ||
+ | |||
+ | КонецЦикла; | ||
+ | ОбъектВорд.Application.Visible = Истина; | ||
+ | ОбъектВорд.Activate(); | ||
+ | |||
+ | Исключение | ||
+ | Док.Application.Quit(); | ||
+ | КонецПопытки; | ||
+ | КонецПроцедуры | ||
+ | </ | ||
+ | |||
+ | Код в модуле обработки: | ||
+ | < | ||
+ | & | ||
+ | Функция ПолучитьМакетыИРеквизитыДоговора(ФормаОбр, | ||
+ | РеквизитыДляПечати = Новый Структура; | ||
+ | Если ВидДоговора = " | ||
+ | ПодготовитьДанныеДоговора(РеквизитыДляПечати, | ||
+ | ПолучитьМакеты(ВидДоговора, | ||
+ | ЗаполнитьДанныеПоПриложению(РеквизитыДляПечати.ДанныеНаПечать, | ||
+ | КонецЕсли; | ||
+ | КонецФункции; | ||
+ | |||
+ | & | ||
+ | Процедура ПолучитьМакеты(ВидДоговора, | ||
+ | Если ВидДоговора = " | ||
+ | // Получаем макет Договора ИТС | ||
+ | ИмяМакета = " | ||
+ | ИмяШаблона = " | ||
+ | АдресМакетаВХранилище = ПолучитьАдресМакетаВХранилище(ИмяМакета, | ||
+ | РеквизитыДляПечати.Вставить(" | ||
+ | |||
+ | // Получаем макет Приложения 1 | ||
+ | ИмяМакета = " | ||
+ | ИмяШаблона = " | ||
+ | АдресМакетаВХранилище = ПолучитьАдресМакетаВХранилище(ИмяМакета, | ||
+ | РеквизитыДляПечати.Вставить(" | ||
+ | КонецПроцедуры | ||
+ | |||
+ | # | ||
+ | |||
+ | // Функция - Получить адрес макета в хранилище | ||
+ | // | ||
+ | // Параметры: | ||
+ | // ИмяМакета - Имя макета, | ||
+ | // | ||
+ | // Возвращаемое значение: | ||
+ | // данных во временном хранилище | ||
+ | // | ||
+ | & | ||
+ | Функция ПолучитьАдресМакетаВХранилище(ИмяМакета, | ||
+ | МакетДанные = ЭтотОбъект.ПолучитьМакет(ИмяМакета); | ||
+ | Имя = КаталогВременныхФайлов()+ИмяШаблона; | ||
+ | МакетДанные.Записать(Имя); | ||
+ | ДвоичДанные = Новый ДвоичныеДанные(Имя); | ||
+ | АдресМакетаВХранилище = ПоместитьВоВременноеХранилище(ДвоичДанные); | ||
+ | Возврат АдресМакетаВХранилище | ||
+ | КонецФункции | ||
+ | |||
+ | |||
+ | & | ||
+ | Функция Склонение(СтрокаФИО, | ||
+ | |||
+ | Если ПолКонтактногоЛица = Перечисления.ПолФизическогоЛица.Мужской Тогда | ||
+ | РезультатСклонения = NameDecl.Просклонять(СтрокаФИО, | ||
+ | ИначеЕсли ПолКонтактногоЛица = Перечисления.ПолФизическогоЛица.Женский Тогда | ||
+ | РезультатСклонения = NameDecl.Просклонять(СтрокаФИО, | ||
+ | Иначе | ||
+ | РезультатСклонения = NameDecl.Просклонять(СтрокаФИО, | ||
+ | КонецЕсли; | ||
+ | |||
+ | Возврат РезультатСклонения | ||
+ | КонецФункции | ||
+ | |||
+ | // Процедура - Получить Объект NameDecl | ||
+ | // Получает NameDecl.dll - библиотека склонения из макета | ||
+ | & | ||
+ | Функция ПолучитьNameDecl() | ||
+ | Данные = ЭтотОбъект.ПолучитьМакет(" | ||
+ | АдресNameDecl = ПоместитьВоВременноеХранилище(Данные); | ||
+ | Попытка | ||
+ | // Загружаем внешнюю компоненту | ||
+ | ПодключитьВнешнююКомпоненту(АдресNameDecl, | ||
+ | NameDecl = Новый(" | ||
+ | Исключение | ||
+ | // Не удалось выполнить операции с внешней компонентой | ||
+ | Сообщить(" | ||
+ | КонецПопытки; | ||
+ | |||
+ | Возврат | ||
+ | |||
+ | КонецФункции | ||
+ | |||
+ | // Формирует фамилию и инициалы либо по переданным строкам. | ||
+ | // | ||
+ | // Параметры: | ||
+ | // ФИОСтрокой - Строка - если указан это параметр, | ||
+ | // Фамилия - Строка - фамилия физического лица. | ||
+ | // Имя - Строка - имя физического лица. | ||
+ | // Отчество - Строка - отчество физического лица. | ||
+ | // | ||
+ | // Возвращаемое значение: | ||
+ | // Строка - фамилия и инициалы одной строкой. | ||
+ | // В параметрах Фамилия, | ||
+ | // | ||
+ | // Пример: | ||
+ | // Результат = ФамилияИнициалыФизЛица(" | ||
+ | // | ||
+ | Функция ФамилияИнициалыФизЛица(ФИОСтрокой = "", | ||
+ | |||
+ | ТипОбъекта = ТипЗнч(ФИОСтрокой); | ||
+ | Если ТипОбъекта = Тип(" | ||
+ | ФИО = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СокрЛП(ФИОСтрокой), | ||
+ | |||
+ | Иначе | ||
+ | // Используем возможно переданные отдельные строки. | ||
+ | Возврат ?(Не ПустаяСтрока(Фамилия), | ||
+ | Фамилия + ?(Не ПустаяСтрока(Имя), | ||
+ | "" | ||
+ | КонецЕсли; | ||
+ | |||
+ | КоличествоПодстрок = ФИО.Количество(); | ||
+ | Фамилия | ||
+ | Имя | ||
+ | Отчество | ||
+ | |||
+ | Если КоличествоПодстрок > 3 Тогда | ||
+ | ДополнительныеЧастиОтчества = Новый Массив; | ||
+ | ДополнительныеЧастиОтчества.Добавить(НСтр(" | ||
+ | ДополнительныеЧастиОтчества.Добавить(НСтр(" | ||
+ | ДополнительныеЧастиОтчества.Добавить(НСтр(" | ||
+ | ДополнительныеЧастиОтчества.Добавить(НСтр(" | ||
+ | ДополнительныеЧастиОтчества.Добавить(НСтр(" | ||
+ | |||
+ | Если ДополнительныеЧастиОтчества.Найти(НРег(ФИО[3])) <> Неопределено Тогда | ||
+ | Отчество = Отчество + " " + ФИО[3]; | ||
+ | КонецЕсли; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Возврат ?(Не ПустаяСтрока(Фамилия), | ||
+ | Фамилия + ?(Не ПустаяСтрока(Имя), | ||
+ | "" | ||
+ | |||
+ | КонецФункции | ||
+ | |||
+ | // Получение адреса отработка ошибок | ||
+ | // | ||
+ | // Возвращаемое значение: | ||
+ | // | ||
+ | // 1 - юридический | ||
+ | // 2 - фактический | ||
+ | Функция ПолучитьпредставлениеАдреса(ВидАдреса, | ||
+ | |||
+ | МассивКонтрагентов = Новый Массив; | ||
+ | МассивКонтрагентов.Добавить(Контрагент); | ||
+ | |||
+ | МассивАдресов = Новый Массив; | ||
+ | Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; | ||
+ | // вид адреса | ||
+ | Если ВидАдреса = 1 Тогда | ||
+ | Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента; | ||
+ | |||
+ | ИначеЕсли ВидАдреса = 2 Тогда | ||
+ | Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента; | ||
+ | КонецЕсли; | ||
+ | |||
+ | МассивАдресов = КонтактнаяИнформацияУНФ.КонтактнаяИнформацияОбъектов(МассивКонтрагентов, | ||
+ | |||
+ | Если МассивАдресов.Количество()> | ||
+ | ПредставлениеАдреса = МассивАдресов[0].Представление; | ||
+ | Иначе | ||
+ | ПредставлениеАдреса = ""; | ||
+ | КонецЕсли; | ||
+ | |||
+ | |||
+ | Возврат ПредставлениеАдреса | ||
+ | КонецФункции | ||
+ | |||
+ | |||
+ | # | ||
+ | |||
+ | </ | ||
+ | |||
+ | === Изменение движений проведенного документа | ||
+ | < | ||
+ | & | ||
+ | Процедура Команда1НаСервере() | ||
+ | Запрос = Новый Запрос; | ||
+ | Запрос.Текст = | ||
+ | " | ||
+ | | ОперацияБух.Ссылка КАК Ссылка, | ||
+ | | ОперацияБух.Номер КАК Номер, | ||
+ | | ОперацияБух.Дата КАК Дата, | ||
+ | | ОперацияБух.Организация КАК Организация, | ||
+ | | ОперацияБух.Содержание КАК Содержание, | ||
+ | | ОперацияБух.ТиповаяОперация КАК ТиповаяОперация, | ||
+ | | ОперацияБух.СпособЗаполнения КАК СпособЗаполнения | ||
+ | |ИЗ | ||
+ | | Документ.ОперацияБух КАК ОперацияБух | ||
+ | |ГДЕ | ||
+ | | ОперацияБух.Дата МЕЖДУ & | ||
+ | |||
+ | Запрос.УстановитьПараметр(" | ||
+ | Запрос.УстановитьПараметр(" | ||
+ | |||
+ | РезультатЗапроса = Запрос.Выполнить(); | ||
+ | |||
+ | ВыборкаД = РезультатЗапроса.Выбрать(); | ||
+ | |||
+ | Пока ВыборкаД.Следующий() Цикл | ||
+ | // проверим что перед нами поступление | ||
+ | Если СтрНайти(ВыборкаД.Содержание," | ||
+ | Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); | ||
+ | Набор.Отбор.Регистратор.Установить(выборкаД.Ссылка); | ||
+ | Набор.Прочитать(); | ||
+ | Инд = 0; | ||
+ | Для Каждого ДВ ИЗ Набор Цикл | ||
+ | Если ДВ.СчетКт = ПланыСчетов.Хозрасчетный.ТорговаяНаценкаНТТ Тогда | ||
+ | Набор.Удалить(Инд); | ||
+ | Набор.Записать(истина); | ||
+ | Сообщить(ДВ); | ||
+ | КонецЕсли; | ||
+ | Инд = Инд + 1; | ||
+ | КонецЦикла; | ||
+ | Иначе | ||
+ | Продолжить | ||
+ | КонецЕсли; | ||
+ | |||
+ | КонецЦикла; | ||
+ | |||
+ | |||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | & | ||
+ | Процедура Команда1(Команда) | ||
+ | Команда1НаСервере(); | ||
+ | КонецПроцедуры | ||
+ | |||
+ | </ | ||
+ | |||
+ | === Вывод реквизитов документа на форму | ||
+ | < | ||
+ | | ||
+ | // Страница Заказ с сайта | ||
+ | ДобавитьЭлементНаФорму(ЭтаФорма.Элементы," | ||
+ | | ||
+ | ТЗ_РеквизитовОбъекта = Новый ТаблицаЗначений; | ||
+ | ТЗ_РеквизитовОбъекта.Колонки.Добавить(" | ||
+ | ТЗ_РеквизитовОбъекта.Колонки.Добавить(" | ||
+ | ТЗ_РеквизитовОбъекта.Колонки.Добавить(" | ||
+ | |||
+ | Стр = ТЗ_РеквизитовОбъекта.Добавить(); | ||
+ | Стр.Имя = " | ||
+ | Стр.Путь = " | ||
+ | Стр.Заголовок = " | ||
+ | |||
+ | Стр = ТЗ_РеквизитовОбъекта.Добавить(); | ||
+ | Стр.Имя = " | ||
+ | Стр.Путь = " | ||
+ | Стр.Заголовок = " | ||
+ | |||
+ | Для Каждого Реквизит Из ТЗ_РеквизитовОбъекта Цикл | ||
+ | ДобавитьЭлементНаФорму(ЭтаФорма.Элементы, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | КонецЦикла; | ||
+ | // начинаем вывод реквизитов формы (не созданы в конфигураторе как реквизиты объекта) | ||
+ | ДобавитьРеквизит(" | ||
+ | ПолучитьОписаниеТипа(Тип(" | ||
+ | " | ||
+ | ДобавитьРеквизит(" | ||
+ | ПолучитьОписаниеТипа(Тип(" | ||
+ | " | ||
+ | ДобавитьРеквизит(" | ||
+ | ПолучитьОписаниеТипа(Тип(" | ||
+ | " | ||
+ | ДобавитьРеквизит(" | ||
+ | ПолучитьОписаниеТипа(Тип(" | ||
+ | " | ||
+ | ДобавитьРеквизит(" | ||
+ | ПолучитьОписаниеТипа(Тип(" | ||
+ | " | ||
+ | ДобавитьРеквизит(" | ||
+ | ПолучитьОписаниеТипа(Тип(" | ||
+ | " | ||
+ | ЭтаФорма.ИзменитьРеквизиты(нРеквизиты); | ||
+ | Для Каждого Реквизит Из нРеквизиты Цикл | ||
+ | ДобавитьЭлементНаФорму(ЭтаФорма.Элементы, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | КонецЦикла; | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | === Таблица значений в структуру | ||
+ | < | ||
+ | & | ||
+ | Процедура Команда1НаСервере() | ||
+ | ТЗ = Новый ТаблицаЗначений; | ||
+ | ТЗ.Колонки.Добавить(" | ||
+ | ТЗ.Колонки.Добавить(" | ||
+ | ТЗ.Колонки.Добавить(" | ||
+ | ТЗ.Колонки.Добавить(" | ||
+ | Стр = ТЗ.Добавить(); | ||
+ | Стр.А = " | ||
+ | Стр.Б = " | ||
+ | Стр.В = " | ||
+ | Стр.Г = " | ||
+ | ТестСтруктура = Новый Структура; | ||
+ | Для Каждого Кол Из ТЗ.Колонки Цикл | ||
+ | ТестСтруктура.Вставить(Кол.Имя, | ||
+ | КонецЦикла; | ||
+ | КонецПроцедуры | ||
</ | </ |