в форме списка документа, оформляет ячейку — скорее всего связано с данными ДокументСписок или что подобное Только чтение это свойство нельзя использовать.
1с 8.3 табличная часть документа
В рамках данной статьи мы напишем обработку заполнения табличной части в 1С 8.3 для типовой конфигурации 1С:ERP 2.1. Предположим, что целью поставленной задачи стоит установка ручной скидки в размере 5% для всех номенклатурных позиций данного документа. Пример из статьи можно скачать по или другой аналогичной обработки по .
Данная инструкция предназначена для управляемых форм (8.2 и 8.3). Для обычных форм (8.1, 8.2) можно воспользоваться .
Создайте и сохраните на ваш компьютер новую обработку. Сначала необходимо произвести некоторые регистрационные действия.
Откройте модуль объекта и пропишите код, приведенный ниже (его также можно взять из данной выше обработки). В целом, структура не будет меняться в зависимости от ситуации. Редактируются только некоторые параметры настроек, а так же при необходимости имена переменных.
В рамках данной статьи мы не будем подробно останавливаться на регистрации внешних обработок и печатных форм в 1С. Вся эта информация есть в других наших статьях.
1С изменить значение в табличной части документа
- Элемент — содержит элемент управления ТабличноеПоле .
- НоваяСтрока — булево. Содержит значение Истина , если добавляется новая строка табличной части, и Ложь, если пользователь начал редактировать уже существующую строку.
- Копирование — булево. Содержит значение Истина , если пользователь копирует строку, и Ложь в остальных случаях.
Заполнение табличной части документа
Теперь нам необходимо добавить на созданной форме новую команду. Предполагается, что она будет автоматически менять данные в табличной части как одного, так и нескольких документов (их формы списка) одновременно, записывая их впоследствии.
Промокоды на Займер на скидки
В рамках нашего примера будет произведена обработка уже существующей табличной части «Товары». Для каждой строки будет установлена ручная скидка в размере 5%. Так же, мы рассчитаем саму сумму данной скидки, равную сумме товаров в строке, умноженных на 0,05.
&НаСервере Процедура ВыполнитьКоманду(Команда, ОбъектыНазначения) Для каждого ЗаказКлиента из ОбъектыНазначения Цикл ЗаказКлиентаОбъект = ЗаказКлиента. ПолучитьОбъект() ; Для каждого СтрокаТЗ из ЗаказКлиентаОбъект. Товары Цикл СтрокаТЗ. ПроцентРучнойСкидки = 5 ; СтрокаТЗ. СуммаРучнойСкидки = СтрокаТЗ. Сумма * 0 . 05 ; КонецЦикла ; ЗаказКлиентаОбъект. Записать() ; КонецЦикла ; КонецПроцедуры
Помимо ключевого слова СУММА можно использовать другие агрегатные функции КОЛИЧЕСТВО , КОЛИЧЕСТВО РАЗНЫХ , МАКСИМУМ , МИНИМУМ , СРЕДНЕЕ.
Вывести Значение в Табличное Поле в 1C
Есть задача в 1С8.3 в форму списка документа Платежное поручение входящее добавить новое поле ЗаказПокупателя и в него вывести данные с табличной части РасшифровкаПлатежа из поля сделка(в котором отображается заказ покупателя). Помогите пожалуйста разобратся начинающему програмисту :
ЗП —это колонка в форме списка в которую нужно вывести данные
Документ.Справки_расчеты_роялти.Форма.ФормаСписка.Форма(132)>: Поле объекта не обнаружено (СсылкаНаОбъект)
Запрос.УстановитьПараметр(«ТекущийДокумент», ЭтотОбъект.СсылкаНаОбъект);
—— Как правильно задать параметры колонки ЗП (поле ввода или указать данные реквизита )
—— Правильный запрос вывода значения с табличной части этого документа(я попытался через ссылку на заказ покупателя)
—— Правильный метод вывода значения в колонку формы списка.
А можно пожалуйста пример вывода данных , у меня подозрение что :
jojojoba2, скорее всего не правильно. Я вообще суть написанного не сильно понял . Но последовательность действий вроде доступно выше описал. Что именно там не понятно или не получается?
Я тестирую вывод данных конкретно в ячейку , и мне интересно ТекОформление.Ячейки.ЗП.Значение(правильное значение) вообще выведет информацию? ТекОформление.Ячейки.ЗП.правильный метод
jojojoba2, блин, ну возьмите проверьте выведет или нет. Но, по-моему, не выведет. Но вы проверьте .
в форму списка документа Платежное поручение входящее добавить новое поле ЗаказПокупателя и в него вывести данные с табличной части РасшифровкаПлатежа
Расшифровка платежа = 1-. n количество строк (строки ТЧ).
Рискуете получить множество повторяющихся документов в форме списка — и это уже не список, а отчет или обработка.
Я тестирую вывод данных конкретно в ячейку , и мне интересно ТекОформление.Ячейки.ЗП.Значение(правильное значение) вообще выведет информацию? ТекОформление.Ячейки.ЗП.правильный метод
вряд ли
опять же возвращаемся, при выводе строки = 1 строка = 1 документ.
а Выборка
содержит множество и поставить множество в поле. ну как то не очень наверное, ну если еще и типизация должна = Документ.Ссылка и и т.п.
Ну на крайняк можно получить ссылку на первое значение выборки или любое указанное вами
в форме списка документа, оформляет ячейку — скорее всего связано с данными «ДокументСписок» или что подобное => «Только чтение» это свойство нельзя использовать. Не сработает.
1с 8.3 табличная часть документа
Помимо ключевого слова СУММА можно использовать другие агрегатные функции КОЛИЧЕСТВО , КОЛИЧЕСТВО РАЗНЫХ , МАКСИМУМ , МИНИМУМ , СРЕДНЕЕ.
Вывести Значение в Табличное Поле в 1C
Вы разрабатываете некую форму, на ней у вас есть табличное поле привязанное к списку какого-либо справочника. И вы хотите реализовать механизм отметки нужных строк галочками.
Делается очень просто! Для этого вы добавляете новую колонку, через контекстное меню.
Называете ее «Отметка». Выбираете элемент управления Флажок.
Затем создаете реквизит ОтмеченныеСтроки с типом СписокЗначений, в нем будем хранить какие строки отметили.
У табличного поля задействуем два события, первое ПриВыводеСтроки, сробатывает всякий раз, когда система выводит строку табличного поля и ПриИзмененииФлажка, когда пользователь изменяет состояние флажка в колонках табличного поля.
Процедура ТабличноеПоле1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.Отметка.ОтображатьФлажок = Истина;
Если ОтмеченныеСтроки.НайтиПоЗначению(ДанныеСтроки.Ссылка) = Неопределено Тогда
ОформлениеСтроки.Ячейки.Отметка.Флажок = Ложь;
Иначе
ОформлениеСтроки.Ячейки.Отметка.Флажок = Истина;
КонецЕсли;
КонецПроцедуры
Обрабатываем только колонку Отметка. Если в списке значений уже есть строка, по которой кликнули, то ее удаляем, это означает снятие галочки. И наоборот, если текущей строки нет — добавляем.
В дополнение было бы весьма удобно реализовать механизмы отметить и снять все галочки! Располагаете на форме командную панель, на ней две кнопки. По нажатию на одной выполняете процедуру:
Процедура КоманднаяПанельДействиеОтметитьВсе(Кнопка)
Выборка = Справочники.Пользователи.Выбрать();
Пока Выборка.Следующий() цикл
ОтмеченныеСтроки.Добавить(Выборка.Ссылка);
КонецЦикла;
ЭтаФорма.Обновить();
КонецПроцедуры
Здесь в цикле перебираются все записи (в данном случае это справочник пользователи, поэтому перебираем выборку) и добавляются с список значений ОтмеченныеСтроки. После выполняется перерисовка формы.
Процедура КоманднаяПанельДействиеСнятьВсе(Кнопка)
ОтмеченныеПользователи.Очистить();
ЭтаФорма.Обновить();
КонецПроцедуры
В итоге у вас получится вот такая табличная часть с дополнительной колонкой Отметка, где выбираются нужные строки, они будут попадать в список значений ОтмеченныеСтроки. И в дальнейшем, перебирая ОтмеченныеСтроки сможете производить с ними какие либо действия! Над таблицей есть две кнопки, установить все галочки и снять!
Собрание полезных заметок Shirrma: 1С галочки для табличного поля
Микрофинансирование → Микрокредиты → Специальные предложения → Скачать файлы → Обзор Быстроденег → Предмет договора → Ответственность сторон → Отличные наличные→ Экспресс займы