С Новым годом! Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/103: Рейтинг темы: голосов - 103, средняя оценка - 4.55
Эксперт 1С
 Аватар для OverDozero
921 / 326 / 130
Регистрация: 07.04.2011
Сообщений: 1,733

Обработка табличной части на клиенте

27.03.2020, 07:03. Показов 21767. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте Уважаемые форумчане.

Конфа:типовая БК 3.Управляемые формы.

В форме документа РеализацияТоваровУслуг имеются процедуры пересчета данных, к примеру, при изменении данных строки табличной части..К примеру "Колонка НДС"

1C
1
2
3
4
5
6
7
8
9
10
&НаКлиенте
Процедура УслугиСтавкаНДСПриИзменении(Элемент)
    
    СтрокаТабличнойЧасти = Элементы.Услуги.ТекущиеДанные;    
    Структура = ОбработкаТабличныхЧастейКлиентСервер.ПодготовитьСтруктуруДляРасчетаСумм(Объект);
    
    ОбработкаТабличныхЧастейКлиентСервер.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, Структура);    
    ОбработкаТабличныхЧастейКлиентСервер.РассчитатьСуммуВсегоТабЧасти(СтрокаТабличнойЧасти, Объект.СуммаВключаетНДС);
    
КонецПроцедуры
ОбработкаТабличныхЧастейКлиентСервер.Рас считатьСуммуНДСТабЧасти(СтрокаТабличнойЧ асти, Структура) - в интерактивном режиме в параметр "СтрокаТабличнойЧасти" передается тип "ДанныеФормыЭлементКоллекции" - то есть текущая строка ТЧ.

В ОбработкаТабличныхЧастейКлиентСервер.Рас считатьСуммуНДСТабЧасти(СтрокаТабличнойЧ асти, Структура) есть строка
"Если ПараметрыОбъекта.Свойство("ЗначениеОборо тПоРеализации") Тогда" - проверяется наличие свойства,то есть которое есть только в структуре.

А как на сервере вызывать "ОбработкаТабличныхЧастейКлиентСервер.Ра ссчитатьСуммуНДСТабЧасти(СтрокаТабличной Части, Структура);" - на сервере тип " ДанныеФормыЭлементКоллекции" недоступен,а можно передать при обходе табличной части только тип "СтрокаТабличнойЧасти" - в этом случае 1эска вывалится с ошибкой что отсутствует "свойство" - Это правильно.Передается то не структура с формы,а данные объекта.


есть ВНЕШНЯЯ ОБРАБОТКА, которая программно создает документ "Реализация ТМЗ"..Естественно это создается на сервере..
В документ программно добавляются строки в табличную часть..
И тут начинается самое интересное..на сервере нельзя просчитать суммы ТЧ,заполнить счета учета в ТЧ,так как стандартный функционал ждет тип "ДанныеФормыЭлементКоллекции"..и ему нельзя передать данные из НовыйМойДокумент.ТабличнаяЧасть.СтрокаТа бличнойЧасти..

А есть же еще и типовой функционал, который доступен только на сервере...Например
МетаданныеДокумента = НовыйДокументТМЗ.Ссылка.Метаданные();
Документы.РеализацияТоваровУслуг.Заполни тьСчетаУчетаВТабличнойЧасти(НовыйДокумен тТМЗ, "Услуги");
Метаданные я то получить с клиента не могу.

Как решение можно извратиться..заполнить все что доступно на сервере - на сервере..Потом обойти табличную часть на клиенте и просчитать ее...Но тут опять проблема с записью документа, которое доступно только на сервере..Ну и тд

А теперь вопрос:ЧТО ДЕЛАТЬ?
Курил мануалы по стандартным функциям типа "реквизитФормыВЗначение","значениеВРекви зитФормы" и тд..
Я так понимаю эти функции применимы только в том случае, если работа осуществляется непосредственно с документом,формой документа(которая доступна только на клиенте)..и применимы когда я работаю из документаОбъекта

А вот если я создаю документ программно, из внешней обработки - нельзя так сделать..У обработки нет этих реквизитов

Как-то можно,создавая из внешней обработки документы, обращаться к процедурам обсчета табличный частей на сервере..
Как-то тип "СтрокаТабличнойЧасти" сконвертировать в тип "ДанныеФормыЭлементКоллекции" не имея формы при этом на сервере?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2020, 07:03
Ответы с готовыми решениями:

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

Обработка заполнения табличной части документа
Здравствуйте! Имеется типовой документ "Корректировка серий и характеристик товара".Мне необходимо заполнять его автоматически...

Розница 2.2.Внешняя обработка заполнения табличной части
Конфа розница 2.2, платформа 8.3.8. Как правильно заполнить ТЧ часть? Пытаюсь через Владельца формы, но не получается ...

6
Эксперт 1С
5767 / 1725 / 628
Регистрация: 16.01.2015
Сообщений: 7,207
27.03.2020, 16:45
Лучший ответ Сообщение было отмечено OverDozero как решение

Решение

OverDozero, Получить ТекущуюСтроку, вогнать все ее данные в структуру
1C
1
2
3
4
5
Инд = Объект.ТЧФормы.ТекущаяСтрока;
Стр = Новый Структура;
Стр.Вставить("НОменклатура", Стр[инд].Номенклатура);
Стр.Вставить("Цена",Стр[инд].Цена);
ОбработкаТабличныхЧастейКлиентСервер.РассчитатьСуммуНДСТабЧасти(Стр);
1
Эксперт 1С
 Аватар для OverDozero
921 / 326 / 130
Регистрация: 07.04.2011
Сообщений: 1,733
27.03.2020, 19:51  [ТС]
Это на сервере? Впринципе я так и предполагал..интерактивные операции и выполняют действия по формированию структур и заполнитьЗначенияСвойств..нужно только составить верную структуру

На мой взгляд это какое-то костыльное решение..но это ж 1сы..
0
Эксперт 1С
5767 / 1725 / 628
Регистрация: 16.01.2015
Сообщений: 7,207
27.03.2020, 19:55
OverDozero, Скорей всего есть и получше решение. Я, честно, не совсем понял какая проблема, среагировал на задачу создания структуры из строки ТЧ на сервере
0
Эксперт 1С
 Аватар для OverDozero
921 / 326 / 130
Регистрация: 07.04.2011
Сообщений: 1,733
28.03.2020, 09:55  [ТС]
Задача..создать программно документ и его заполнить(шапку,таб.часть..просчитать суммы в тч,заполнить счета учета и тд)

А часть этих данных,в частности, просчет ТЧ хитро вызывается.через формирование структур на клиенте..с передачей на сервер.
Костыльное решение
0
Эксперт 1С
5767 / 1725 / 628
Регистрация: 16.01.2015
Сообщений: 7,207
28.03.2020, 10:38
Цитата Сообщение от OverDozero Посмотреть сообщение
Структура = ОбработкаТабличныхЧастейКлиентСервер.Под готовитьСтруктуруДляРасчетаСумм(Объект);
Здесь нет ошибки? Странно, что передается весь объект. Попробуй передать параметром просто свою табличную часть Объект.ТЧФормы. Думаю сработает на ура
А СтрокаТабличнойЧасти у тебя уже есть
1C
1
2
Инд = Объект.ТЧФормы.ТекущаяСтрока;
СтрокаТабличнойЧасти = Объект.ТЧФормы[инд];
0
Эксперт 1С
 Аватар для OverDozero
921 / 326 / 130
Регистрация: 07.04.2011
Сообщений: 1,733
28.03.2020, 15:28  [ТС]
Я победил это))
Задача усложнилась тем,что в типовой конфигурации вызывается процедура, которая возвращает сведения о Номенклатуре в текущей строке ТЧ..А у меня хитрый подбор данный для расчета..номенклатура и суммы должны браться из доп.реквизитов справочника
И сведения о номенклатуре не содержали уже нужных мне данных после получения их типовой функцией...

А что касается обработки табличной часть по расчету сумм(может кому-то понадобиться)
1C
1
2
3
4
5
6
7
8
ДанныеСтрокиТаблицы = Новый Структура("Номенклатура, Содержание, Количество, Цена, Сумма, СтавкаНДС, СуммаНДС, НДСВидОперацииРеализации");
        ЗаполнитьЗначенияСвойств(ДанныеСтрокиТаблицы, СтрокаУслуги);
 
        ПараметрыОбъекта = Новый Структура(
        "Организация, СтруктурноеПодразделение, ВидОперации, Дата, Ссылка, ТипЦен, 
        |УчитыватьКПН, УчитыватьНДС, СуммаВключаетНДС,  
        |ВалютаДокумента, КурсВзаиморасчетов, КратностьВзаиморасчетов, Склад, ДоговорКонтрагента");
        ЗаполнитьЗначенияСвойств(ПараметрыОбъекта, НовыйДокументТМЗ);
Где "НовыйДокументТМЗ = Документы.РеализацияТоваровУслуг.Создать Документ();"
"СтрокаУслуги = НовыйДокументТМЗ.Услуги.Добавить();"

Расчет сумм
1C
1
2
3
4
5
6
        ОбработкаТабличныхЧастейКлиентСервер.РассчитатьСуммуТабЧасти(ДанныеСтрокиТаблицы); 
        ОбработкаТабличныхЧастейКлиентСервер.РассчитатьСуммуНДСТабЧасти(ДанныеСтрокиТаблицы, ПараметрыОбъекта);            
        ОбработкаТабличныхЧастейКлиентСервер.РассчитатьСуммуВсегоТабЧасти(ДанныеСтрокиТаблицы, ПараметрыОбъекта.СуммаВключаетНДС);
 
//копируем заполненные данные обратно в строку.Без этого не работает       
ЗаполнитьЗначенияСвойств(СтрокаУслуги, ДанныеСтрокиТаблицы);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.03.2020, 15:28
Помогаю со студенческими работами здесь

БП 3.0. Универсальный подбор и обработка объектов - произвольный код табличной части
доброго времени суток. подскажите, как с помощью универсального подбора и обработки объектов изменить реквизит табличной части в документе...

Внешняя обработка Печать ценников: ошибка при попытке получения реквизита табличной части документа.
Хочу получить табличную часть товары документа установка цен номенклатуры. &НаКлиенте Процедура Печать(Команда) Таб =...

Заполнение Табличной Части документа из Табличной Части другого документа
Здравсвуйте. 1С 8.2 Есть два документа ТоварнаяНакладная.Накладная с реквизитами МассаБрутто и МассаНетто и документ...

Запрос. Условие: строка из первой табличной части равна любой строке из другой табличной части
Есть документ "РаспределениеМатериаловНаВыпуск". У этого документа имеется "Форма документа". На этой форме есть элементы...

Обработка заполнения табличной части документа
Здравствуйте! Необходимо создать внешнюю обработку заполнения табличной части "Товары" документа "Отчет о розничных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru