Parus16.ru

Парус №16
678 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Загрузить таблицу значений на форму

Загрузить таблицу значений на форму

Общее условие, что все элементы формы программно добавляются на стороне сервера, а не на клиенте, как можно решить изначально, учитывая архитектуру платформы 1С: Предприятие 8.2 и 8.3. Да, " &НаСервере " и преимущественно в процедуре "ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка ) " формы документа или элемента справочника или формы списка.

Например, при программном добавлении флажка на управляемую форму, важно понимать, что в терминах нового интерфейса флажок исходно является полем ввода. И уже потом у этого поля ввода определяется вид.

Просто и понятно об это в синтакс-помощнике не написано. Но аксакалы сразу с вопросом "как создать программно флажок на управляемой форме" стабильно "отправляют" в помощник, в котором для методов "Добавить" или "Вставить" коллекции "ЭлементыФормы" написано короток и ни одного примера того, как программно определить, чтобы элемент формы был флажком.

элементы управляемой формы, 1С 8, поле флажка, как добавить, программно

По старой привычке, но уже понимая разницу типов можно по ошибке указать Тип("ПолеФлажкаФормы") второго параметра метода, но это будет неправильно и вызовет ошибку:

Нажатие на изображении увеличит его
1C 8, управляемые формы, УФ, как программно добавить флажок на форму

Недопустимое значение параметров
<ЗаказКлиента.Форма.ФормаДокумента.Форма(16)>: ФлажокДеньгиПолучены = Элементы.Добавить("_ДеньгиПолучены", Тип("ПолеФлажкаФормы"), ГруппаСтатусПриоритет);
по причине:
Недопустимое значение параметров

Поэтому надо учесть, что во второй параметр помещается "Тип("ПолеФормы")". А потом определяется "Вид" — "ВидПоляФормы.ПолеФлажка". Не забыть связать флажок с реквизитом объекта конфигурации через свойство "ПутьКДанным".

Так же справочно добавлю код по тому, как программно разместить на управляемой форме колонку с флажком в табличной части формы. Где "Таблицаформы" — табличная часть, в которую добавляется программно новая колонка. Для колонки исходно тип определяется как "ПолеФормы", потом через свойство вид определяется "ПолеФлажка". "ПутьКДанным" — указывается с учетом названия табличной части объекта (справочник или документ) конфигурации, в примере название табличной части "Табличная часть".

И еще пример вывода колонки с флажком для реквизита документа типа "Булево" формы списка. Колонка вставляется передо колонкой "Номер", которая на форме носит имя "СписокНомер". Так же как и в предыдущем примере — при добавлении элемента формы определяется кодом, что флажок — это "поле формы", потом с помощью свойства уточняется вид поля формы. Связь через свойство "ПутьКДанным", где "Список" — название основного реквизита управляемой формы.

Загрузка данных из Excel в конфигурацию 1С: Предприятие 8.3 Управление торговлей редакции 11

Обработка по загрузке данных из табличного документа разработанная фирмой 1С. Данная обработка существует в 2-х версиях: для новых управляемых форма, в том числе интерфейса такси и для старых обычных форм, которые существуют с первых версий платформы 1С: Предприятие 8.1. Загрузку данных можно осуществлять из любых файлов Excel, табличных документов формата 1С, текстового файла и файла базы данных. Также можно взять любой документ, содержащий ячейки и скопировать содержимое напрямую в табличную форму обработки. Также заполнять эту табличную форму вручную и после загрузить данные в справочник, например справочник Номенклатуры, что будет проще, быстрее и удобнее, чем создавать те же данные непосредственно вводя добавляя новые позиции из списка справочника Номенклатура. Перейдем к обзору формы нашей обработки.

Читайте так же:
Вин аэро для виндовс 10
Начало обзора обработки загрузки

Первая закладка обработки загрузки данных

Первая закладка обработки загрузки данных

1. Открыв форму обработки загрузки, пойдем по порядку. Первая «строка» переключатель. Загрузить в: Справочник, Табличную часть, Регистр сведений. Справочник — самое распространённое место для загрузки данных. Табличной частью является одна из таблиц внутри справочника или документа, конечно чаще данный атрибут можно встретить в документах, во многих документах товародвижения Вы можете найти закладку Товары на которой содержится та, самая таблица в которую можно вносить данные обработкой.

2. Далее укажем, в какой объект будем загружать данные, т.е. его наименование. Выбирем из списка справочник Номенклатура. При этом у нас в первой строке табличной части заполнятся колонки в соответствии с полями справочника Номенклатура, по которым нужно заполнить таблицу.
При этом на закладке Настройка будут выведены поля Номенклатуры аналогичные полям, заполненным в строке таблицы, о которой мы рассказали выше.

Заполнение полей закладки Настройка обработки

Заполним несколько полей в табличной части вручную или подгрузив из внешнего файла и перейдем на закладку Настройка, где дозаполним оставшиеся поля значениями, общими для всех строк нашей таблицы. На скриншоте будут отображаться только верхние поля Номенклатуры, отсортированные по в данном по порядку, зашитому в конфигурации. Что не мешает нам менять порядок, перетаскивание или сортировать по алфавиту, если это необходимо.

Закладка Настройка

  • Пометка — указывает, будет ли значение данного поля использоваться при загрузку
  • Представление реквизита — Наименование поля данного справочника, тоже что мы видели на закладке Табличный документ
  • Поле поиска — определяет будет ли участвовать в поиске по значению, указанному в табличном документе, в нашем объекте (справочнике Номенклатура)
  • Описание типов — представляет из себя тот тип, который указан в конфигураторе разработчиком, что в прочем по наименованию позволяет соориентироваться, что будет в поле значение.
  • Режим загруки — Искать, Устанавливать, Вычислять.
    Устанавлить — будет усновлено значение, указанное в следующей колонке Значение по умолчанию.
    Вычислять — в колонке Условие связи / Выражение для значения — указывается алгоритм, по которому будет заполняться данное поле.
    И последнее значение — самое распростарненное Искать. При установленном значении будет производится поиск по установленному значению из табличного документа.
Читайте так же:
Быстродействие системы windows 7 грузит процессор

Также у нас есть возможность прописать так называемые События, позволяющая опять же в виде алгоритма написать программный код, который выполнится Перед записью объекта и При записи объекта.

Перейдем к практической части работы с обработкой загрузки

Выполнить загрузку типовым способом, как указано в скриншотах выше не удалось по причине ошибки «Задано неправильное имя атрибута структуры», что нам ни о чем не говорит и не указывается на значение ошибки в обработке. Подкорректируем немного нашу настройку обработки.

Вкладка наистройки алгоритма из интернета

Вкладка наистройки алгоритма из интернета

  1. Для еденицы мы укажем Режим загрузки — Вычислять и в поле Условия связи пропишем алгоритм:
    «Результат = Справочники.УпаковкиЕдиницыИзмерения.НайтиПоКоду(«796″, Истина);»
    Как раз из-за значения этого поля и возникала ошибка, указанная выше. Возможно есть более оптимальный способ установки данного поля, для назначения идиницы измерения «шт.» (Штуки).
  2. Заполним оставшиеся поля как на скриншоте, выбра Резим загрузки — Устанавливать (установить из значения, указанного в поле Значение по умолчанию), не обращая внимание на заполнение данных в табличном документе.

На этом шаге мы можем завершить обзор данной обработки. Заходите в справочник Номенклатуры и проверяйте, конечный результа выполнения загрузки. Не назвать это простым способом, все же это позволяет потратив время разобраться в загрузке самому, не прибегая к помощи специалиста.
Спасибо за внимание!

Заметки по 1С:Предприятие 8.2, 8.3

Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования (Linus Torvalds).

Страницы

  • Главная
  • Полезности
  • Мои сертификаты

понедельник, 16 декабря 2013 г.

Выгрузка результата СКД в таблицу значений

Функция РезультатКомпоновкиВТЗ ( СКД ) Экспорт

КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных ;
КомпоновщикНастроек . Инициализировать (Новый ИсточникДоступныхНастроекКомпоновкиДанных ( СКД ));
КомпоновщикНастроек . ЗагрузитьНастройки ( СКД . НастройкиПоУмолчанию );

Читайте так же:
Биос гигабайт установка виндовс с флешки

НастройкиКомпоновщика = КомпоновщикНастроек . Настройки ;
ПараметрыНастройки = НастройкиКомпоновщика . ПараметрыДанных ;

// устанавливаем параметры отчета
ЗначениеПараметра = ПараметрыНастройки . НайтиЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( «НачалоПериода» ));
ЗначениеПараметра . Значение = НачалоПериода ;

ЗначениеПараметра = ПараметрыНастройки . НайтиЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( «КонецПериода» ));
ЗначениеПараметра . Значение = КонецДня ( КонецПериода );

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных ;
МакетКомпоновкиДанных = КомпоновщикМакета . Выполнить ( СКД , НастройкиКомпоновщика . Тип ( «ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений» ));

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных ;
ПроцессорКомпоновкиДанных . Инициализировать ( МакетКомпоновкиДанных );

ТаблицаРезультат = Новый ТаблицаЗначений ;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений ;

ПроцессорВывода . УстановитьОбъект ( ТаблицаРезультат );
ПроцессорВывода . Вывести ( ПроцессорКомпоновкиДанных );

Процедура КнопкаВыполнитьНажатие ( Кнопка )
Продажи . Загрузить ( РезультатКомпоновкиВТЗ ( СКД ));
КонецПроцедуры

1С. Вывод картинок в строках таблицы

Часто для читабельности списков выводим картинки в строках таблицы соответствующие статусам. В управляемом приложении такое пожелание реализуется достаточно просто.

В качестве решаемой задачи определим динамический список, в котором необходимо выводить иконки. Иконки, а точнее набор иконок создадим сами, в виде цветных квадратов 32*32 пикселей.

Решение

Набор иконок

Для вывода очень удобно использовать набор иконок, по сути это картинка с определенной высотой и кратной количеству иконок шириной. Для наглядности создадим свой набор, в котором будет 6 иконок с разными цветами. В любом графическом редакторе создаем слой 32*192 и заливаем квадратики разными цветами и сохраняем. Я использовал GIMP, у меня получилось так(самая левая иконка белая)

1С. Вывод картинок в строках таблицы

Получившуюся картинку загружаем в конфигурацию.

Подготовка конфигурации

1С. Вывод картинок в строках таблицыВ нашей конфигурации есть периодический регистр сведений «Состояние задач» с измерениями Проект, Задача и ресурсом Выполнена. Будем выводить цветной квадратик в зависимости от даты последней записи по задаче.

Создадим обработку, в которой определим форму с динамическим списком. Для динамического списка установим признак Произвольный запрос и напишем текст запроса в котором выберем срез последних регистра сведений «Состояние задач»:

В запросе определили колонку Без изменений, в которой рассчитывается количество дней без изменения статуса задачи.

В выражении присутствует параметр, значение параметра будем задавать в обработчике ПриСозданииНаСервере()

1С. Вывод картинок в строках таблицы

На форму добавим таблицу из получившегося динамического списка. Для колонки Без изменений установим следующие параметры:

  • Вид: Поле картинки;
  • Путь к данным: СписокЗадач.БезИзменений;
  • Картинка значений: ЦветаБезИзменений;
  • Положение заголовка: Нет

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

Заполним данными регистр сведений «Состояние задач»(считаем, что текущая дата равна дате публикации статьи 17.05.2017)

Читайте так же:
Быстрый браузер для слабого компьютера windows 7

Данные регистра

1С. Вывод картинок в строках таблицы

Вывод получившейся обработки

Дополнительно сгруппируем динамический список по проекту для большей читабельности и посмотрим результат:

СКД и таблицы значений

День добрый. В сегодняшней статье хотел бы рассказать о том, как использовать инструмент СКД для выборки данных из разных источников и выводе результата в таблицу значений.

Немного о СКД

СКД — система компоновки данных. Появился этот инструмент в 1С 8.2. Чаще всего этот инструмент используется для быстрого построения отчетов практически без применения программирования. Но есть у СКД и другое применение — обработка произвольных наборов данных заранее не известной структуры.

Например найти документы по любому реквизиту в базе. Как это сделать? Для начала необходимо получить список объектов метаданных из базы, а затем построить запрос, который выберет документы с указанным отбором. Сказать проще, чем сделать. Описывать все возможные отборы вручную крайне трудно, поскольку сложно предсказать, какие реквизиты присутствуют у документа и по каким из них построить отбор. Возможно собрать текст запроса с использованием перебора реквизитов метаданных, но возникает другая проблема: построение условий по параметрам, что задает пользователь. Мы знаем, что фантазия пользователя безгранична и, порой, идет неожиданными путями. Как же быть в этом случае? Ответ прост — использовать СКД для построения настроек отбора и сборки результата в нужном виде.

От теории к практике

Дана обработка, которая позволяет удалять любые данные. При запуске обработка анализирует объекты метаданных и создает список, в котором выбираются нужные объекты. Теперь в эту обработку необходимо добавить возможность отбора, что бы не выбирать из списка со всеми объектами по одному.

ФормаОтбора.png

Решить эту проблему можно с использованием системы компоновки данных. Для этого создаем отдельную форму, на которой размещаем элементы настройки отбораНа картинке видно, что на форме присутствуют следующие реквизиты: АдресСКД — строка, в которой сохраняется адрес временного хранилища настроек СКД, НастройкиОтбора — КомпоновщикНастроекКомпоновкиДанных — собственно настройки СКД , ПолноеИмяОбъекта — строка с полным именем объекта обработки (например: Справочник.Контрагенты).

Цифрой 1 обозначена таблица из НастройкиОтбора.Настройки.Отбор.ДоступныеПоляОтбора

Цифрой 2 обозначена таблица из НастройкиОтбора.Настройки.Отбор

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

Читайте так же:
Виндовс 10 код ошибки 0xc0000225

Перейдем теперь к самой схеме компоновки.

Для начала создадим схему и укажем источник данных. В нашем случае СКД будет брать данные из внешней таблицы.Возможно использовать в качестве источника разные объекты. Часто источником выступает «Запрос», но в этом случае схема обработки данных менее наглядна.

Далее добавляем поля СКД и установить их связь с полями источника данных.

В моем случае источник данных это таблица значений, которая формируется из всех полей объекта метаданных. Выглядит этот запрос следующим образом:
В запросе код «ОбработкаОбъект().СтрокаДляЗапросаТипа(ВидМетаданных, ВыборМетаданные)» отвечает за получение имени объекта метаданных для использования в запросе.

Далее для работы отбора необходимо добавить поля схемы компоновки данных. Если поле, что указано в отборе не будет добавлено, то это приведет к ошибке. Перебор полей настроек отбора выполняется, как у любой коллекции в 1С:

Следующим шагом будет создание компоновщика настроек для нашей СКД:

Последняя строка отвечает за загрузку настроек, которые были сделаны в форме отбора и переданы в родительскую форму. Дальше производим донастройку СКД:

Первый блок кода указывает схеме компоновки данных, что для вывода будет использовано одно поле — «Ссылка», а второй блок содержит указание, что выводится детальную запись.

Теперь готовим Компоновщик макета СКД:

Первый параметр выполнения указывает на саму СКД, второй — настройки отбора и полей, что сделали ранее, а последний параметр указывает, что подготовятся данные для вывода в коллекцию. В моем случае вывод будет в таблицу значений, но существуют и другие варианты. Теперь все готово и можно приступать к обработке данных и их отбору. Для этого существует «ПроцессорКомпоновкиДанных». В этот процессор передается макет компоновки и набор данных:

На этом шаге уже имеется готовый набор данных, обработанный нашей схемой компановки и осталось только вывести их в таблицу значений, но тут есть своё нюанс: таблица значений, в которую мы будем выводить данные, должна быть создана и иметь колонки с названиями нужных названием полей, как в СКД. Все остальные колонки будут проигнорированы.

Теперь осталось только вывести данные в таблицу значений через обход коллекции:

Теперь создана таблица значений, которая содержит выборку по заданным правилам.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector