передать текущую строку на сервер в управляемом приложении

Передача текущей строки табличной части из клиента на сервер.

Узнать данные из табличной части текущей строки
Добрый день, программисты. Форма выбора бумаги вызывается из табличной части. В форме выбора есть.

Передача данных из Табличной части Объекта на сервер. Имеет ли смысл?
Добрый день. Управляемые формы. Есть внешняя обработка. У неё как у Объекта имеется Табличная.

Значение строки табличной части получить в табличной части другого документа
Есть документ ПриходнаяНакладная (товар приходит от поставщика по его цене), с табличной частью.

Решение

А нет, всё отлично! Большое спасибо, GreenkA!)

Добавлено через 49 минут

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

Передача значений в табличной части
Добрый день. Подскажите, пожалуйста, по коду, как реализовать следующее: в документе есть.

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

Передача табличной части обработки в запрос
Здравствуйте. Делаю внешнюю обработку для Документооборота. Сделал запрос для вывода просроченных.

Передача значение констант в строку табличной части документа
Добрый день!Только начинаю программировать в 1с поэтому прошу помощи более опытных людей.

Источник

Как заполнить строку табличной части на сервере без контекста

Эту и другие технические статьи написали наши программисты 1С и получили за них премии. Если вы тоже работаете с 1С и любите делиться опытом, приходите разработчиком в Neti →

Цель данной статьи показать, как работать со строкой табличной части на сервере без контекста.

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

Читайте также:  как преобразовать сайт в приложение

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

Передача типа ДанныеФормыЭлементКоллекции на сервер невозможна:

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

• ПреобразоватьДанныеТекущейСтрокиВСтруктуру() – на основании данных текущей строки создается и заполняется структура с теми реквизитами табличной части, которые нам понадобятся для решения задачи.

• ИндексСтроки = Элементы.Товары.ТекущаяСтрока; – получаем идентификатор текущей строки таблицы

• ЗаполнитьЕдиницуИзмеренияНоменклатуры(ДанныеТекущейСтроки); – серверный без контекстный вызов, обращение к БД, поиск единицы измерения номенклатуры. Найденное значение помещается в структуру.

• ЗаполнитьЗначенияСвойств(Объект.Товары[ИндексСтроки], ДанныеТекущейСтроки, “Упаковка”); – изменяем значение «Упаковка» в текущей строке табличной части

А теперь с помощью замера производительности сравним время выполнения данной задачи и сравним время выполнения через серверный вызов. Чтобы увидеть разницу заполняем табличную часть формы данными.

Первый замер – серверный без контекстный вызов: 0,013694, второй замер – серверный вызов: 0,047071.

Источник

Передача данных между управляемыми формами


Поставленная задача

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

Читайте также:  стр 012 приложения 1 к листу 02 декларации по налогу на прибыль по осв

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

Реализация

Для демонстрации двух вариантов передачи данных между управляемыми формами реализуем оба варианта в подборе.

Без обращения к серверу

Создадим форму списка у справочника «Товары». При этом не назначим ее основной. В реквизиты формы добавим таблицу «ПодобранныеТовары» и разместим соответствующий элемент формы. При этом для полей динамического списка «ЭтоГруппа» и «Ссылка» установим флаг «Использовать всегда». Далее Вы увидите для чего.

Теперь нам нужно написать программный код обработки выбора в динамическом списке. Все действия выбора будут сводитсья к добавлению строки в таблицу «Подобранные товары» элементов справочника. Если элемент уже был добавлен в таблицу, то увеличиваем его количество. Программный код обработки выбора (событие «Выбор») списка номенклатуры приведен на следующем листинге:

Форма подбора товаров вызывается из формы документа по команде «Подбор».

Программный код вызова формы подбора из документа следующий:

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

После выполнения метода «ОповеститьОВыборе» данные передаются в обработчик «ОбработкаВыбора» элемента формы документа «Товары», и далее обрабатывается:

В результате таблица товаров документа будет заполнена. При использвовании этого варианта передачи данных между формами не было произведено вызовов к серверу. Однако у подобного подхода есть несколько больших минусов:

С обращением к серверу

Отличия в реализации подбора будут в этом случае только в передаче данных в документ и, затем, обработки подобранных товаров в документе. Вот таким образом будет выглядеть команда передачи данных в документ из подбора:

Теперь алгоритм обработки выбора элемента формы документа «Товары» изменится следующим образом:

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

Вместо выводов

Способ передачи данных между формами зависит от конкретной задачи, поэтому не стоит думать, что использование временного хранилища на сервере является абсолютно правильным решением. В типовых конфигурациях, таких как «Управление торговлей 11» или «Розница» подбор осуществляется с использованием временного хранилища на сервере. Однако для простых задач, на подобии рассмотренного примера, осуществление передачи данных на клиенсткой стороне куда оптимальней, нежели вызов сервера.

Читайте также:  Болезнь тревора что такое

По ссылке Вы можете скачать тестовую конфигурацию с примером из статьи.

Источник

Использование свойства Текущая строка 1С

ТекущаяСтрока — свойство таблицы формы, содержащее идентификатор текущей строки. Тип свойства может различаться в зависимости от источника таблицы. Для всех источников, кроме динамического списка текущая строка 1с — это числовой идентификатор. Для динамического списка возможны несколько вариантов

Применение свойства Текущая строка 1С

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

Изменение текущей строки таблицы

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

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

Заметим, что если строки с указанной ссылкой не будет найдена в таблице формы, то свойство ТекущаяСтрока примет значение Неопределено. Что означает отсутствие текущей строки таблицы.

Получение строки источника

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

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

Источник

Обо всем