![]() |
|
Несколько табличных документов, как показать на клиенте? ↓ (Волшебник 18.10.2025 20:12) Волшебник, Шурик71, Олдж, Garykom, ikea, RomanYS, Prog_man, viraboy, МаленькийВопросик, bmitkin, DiMel_77, АгентБезопаснойНацио, Timon1405, Мультук, DM36, Chameleon1980, alexxx961503, palsergeich, trad, SleepyHead, mr_K, TormozIT, craxx, CepeLLlka, Amra, dmt, Bigbro, vis, Krendel, _Batoo, dma164, runuts, Alexor, Metman
| ☑ | ||
---|---|---|---|---|
0
Death_eye
17.10.25
✎
09:08
|
Помогите, пожалуйста, с алгоритмом. Есть договор, в нем 20 предприятий. Нужно сформировать по каждому табличный документ с оказанными услугами и показать все пользователю.
В обычных формах ТабДокумент.Показать() работало. В УФ работает только на клиенте. Заранее не известно по какому предприятию данные есть. Т.е. если в запросе выбрались данные только по 3м предприятиям, то сформировать только 3 табличных документа. |
|||
1
СвинТуз
17.10.25
✎
09:11
|
"ТабДокумент.Показать()"
уже не кошерно. Формируйте на сервере, возвращайте на клиент массив табличных документов. |
|||
2
maxab72
17.10.25
✎
09:13
|
варианты:
1. сформировать все в одном табличном документе с разбивкой по страницам. 2. програмно сформировать на форме "закладки" по каждому предприятию и на них вывести табличные документы по соответствующим предприятиям. |
|||
3
Мультук
гуру
17.10.25
✎
09:13
|
(0)
БСП не предлагать, верно ? &НаСервере Функция СформироватьПулТабДокументов() мас = Новый массив; // мас.Добавить(Табдок); Возврат мас; КонецФункции &НаКлиенте Процедура ПоказатьПулТабДокументов() мас = СформироватьПулТабДокументов(); Для каждого табДок из мас Цикл табДок.Показать(); конецЦикла; КонецПроцедуры P.S. TO "Маленький вопросик" Снова 15 лет. Походу где-то что-то как-то произошло. |
|||
4
Ёпрст
гуру
17.10.25
✎
09:18
|
(3) просто кто-то открывает для себя волшебный мир "неуправляемых форм".
|
|||
5
DiMel_77
17.10.25
✎
09:59
|
(3) А для БСП будет что то типа такого:
&НаСервере Функция СформироватьПулТабДокументов() мас = Новый массив; // СтруктураПечатнойФормы = Новый Структура("ИдентификаторПечатнойФормы, СинонимМакета, ТабличныйДокумент); СтруктураПечатнойФормы.Вставить("ИдентификаторПечатнойФормы", ...); // Любая строка идентифицирующая форму СтруктураПечатнойФормы.Вставить("СинонимМакета", ...); // Текстовое представление СтруктураПечатнойФормы.Вставить("ТабличныйДокумент", ТабДок); мас.Добавить(СтруктураПечатнойФормы); Возврат мас; КонецФункции &НаКлиенте Процедура ПоказатьПулТабДокументов() мас = СформироватьПулТабДокументов(); КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(); Поля = УправлениеПечатьюКлиентСервер.ИменаПолейКоллекцииПечатныхФорм(); Для каждого СтрТабДок из мас Цикл ПечатнаяФорма = Новый Структура(СтрСоединить(Поля, ",")); ПечатнаяФорма.СинонимМакета = СтрТабДок.СинонимМакета; ПечатнаяФорма.ИмяФайлаПечатнойФормы = ПечатнаяФорма.СинонимМакета; ПечатнаяФорма.ТабличныйДокумент = СтрТабДок.ТабличныйДокумент; КоллекцияПечатныхФорм.Добавить(ПечатнаяФорма); конецЦикла; ДополнительныеПараметры = УправлениеПечатьюКлиент.ПараметрыПечати(); ДополнительныеПараметры.ЗаголовокФормы = Заголовок; ДополнительныеПараметры.ВладелецФормы = ЭтотОбъект; УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, , ДополнительныеПараметры); КонецПроцедуры |
|||
6
Маленький Вопросик
17.10.25
✎
09:55
|
(3) прям аж глаз «режет» от этих «специалистов»… видно боятся попасть под сокращение
|
|||
7
Death_eye
17.10.25
✎
09:47
|
(5) спасибо
|
|||
8
DiMel_77
17.10.25
✎
09:55
|
(7) Поправил код - так должно работать.
|
|||
9
Garykom
гуру
17.10.25
✎
09:56
|
(7) Какой смысл говорить спасибо за по сути нерабочий (в твоем конкретном случае) код?
Это просто пример, который совсем не обязателен Ибо хз какая у тебя конфа, есть ли там БСП и какой версии Лучше подучи теорию Разберись что такое клиент и сервер Не вижу ничего сложного с клиента сделать один или нужное число вызовов сервера, сформировать нужные ТабДок и вернуть их на клиента в реквизиты формы например Можно как СписокЗначений из ТабличныйДокумент или еще как, да хоть во временное хранилище А затем отображать их как надо пользователю аля (2) |
|||
10
Маленький Вопросик
17.10.25
✎
10:26
|
(5) какая-то невообразимая бессмыслица
|
|||
11
Garykom
гуру
17.10.25
✎
10:29
|
(10) Не мешай ботам общаться друг с другом ))
|
|||
12
Маленький Вопросик
17.10.25
✎
10:30
|
(0) https://infostart.ru/1c/reports/2315077/ - вот это «в цикле запусти»
|
|||
13
DiMel_77
17.10.25
✎
10:30
|
(10) Ну ка интересно а в чем бессмыслица? Поясните?
|
|||
14
Garykom
гуру
17.10.25
✎
10:31
|
(13) Сложить несколько ТабДок в один можно и без БСП
|
|||
15
DiMel_77
17.10.25
✎
10:33
|
(14) В БСП есть уже готовый механизм для вывода пакета документов. Зачем писать велосипеды?
|
|||
16
Garykom
гуру
17.10.25
✎
10:34
|
(14)+ Так можно дойти что вместо
А = 2 + 2; Будут писать М = Новый Массив; М.Добавить(2); М.Добавить(2); А = ОбщийМодульВычисления.Сложить(МассивСлагаемых); |
|||
17
Garykom
гуру
17.10.25
✎
10:37
|
(15) 1. Понимание алгоритмов и работы на низком уровне
2. Надежность и независимость от версий БСП 3. Тупо быстрей работает без БСП? Есть смысл применять БСП когда оно оправдано Например для ускорения разработки или "в одном стиле" Но понимая что это засады в будущем на переписывание, в случае обновлений типовых/БСП |
|||
18
DiMel_77
17.10.25
✎
10:37
|
(16) Хороший стиль подразумевает использование существующих библиотек в работе. Почему вы допустим не пишете "Сообщение = Новый СообщениеПользователю();", а используете "ОбщегоНазначения.СообщитьПользователю", а в случае пакетных документов не используете подсистему "УправлениеПечатью"?
|
|||
19
Garykom
гуру
17.10.25
✎
10:40
|
(18) Так и я о чем
Если я дорабатываю конфу то использую ОбщегоНазначения.СообщитьПользователю Если же пишу временную внешнюю обработку или печатную форму - нахрена так заморачиваться? Достаточно просто Сообщить() Оно же тупо не заработает в другой конфе без ОбщегоНазначения (а таких дофига и более отраслевых) |
|||
20
DiMel_77
17.10.25
✎
14:06
|
(19) Я слабо представляю, как может быть универсальная печатная форма (за исключением вывода каких-нибудь технических вещей, типа движений). Обычно всегда внешняя обработка или отчет пишется под конкретную конфигурацию. А использование программного интерфейса подсистем БСП зачастую избавляет от ошибок. У нас во внутренних стандартах разработки это прописано жёстко.
|
|||
21
craxx
18.10.25
✎
11:14
|
(6) Аха..ха.
Я принимал дела на одном заводе в прошлом году от одной девочки (48 лет и 16 лет опыта!!). Так она даже СКД не знала, писала отчеты на построителе и проверяла условия вывода в цикле. Прайс-лист с таким подходом собирался 2 часа (!!!). Вместо 7 секунд на СКД. УФ, естественно, тоже не знала. Я когда посмотрел код - реально🤦 |
|||
22
dmt
18.10.25
✎
13:10
|
(21) чтобы посмеяться - надо знать ЗП и обязанности девочки. А то бывает на заводах, что тянут зоопарк систем и эту вашу 1с - и все тысяч за 40-50
|
|||
23
Волшебник
18.10.25
✎
13:22
|
(21) А при чём тут СКД?
|
|||
24
craxx
18.10.25
✎
13:31
|
(23) я это к тому, что опыт 15+ лет - это совершенно ни о чем не говорит.
|
|||
25
craxx
18.10.25
✎
13:30
|
(22) Она была внешним спецом по обслуживанию их 1С. И даже пыталась перевести их с УТ 10.3 на КА 2.5. Естественно, попытки были неуспешны.
|
|||
26
Волшебник
18.10.25
✎
13:59
|
(25) Неверно написанный запрос затормозит любую СКД.
|
|||
27
Маленький Вопросик
18.10.25
✎
16:06
|
(21) человек не был заинтересован в экономии собственного времени - просто сидел на ставке, монотонно выполнял свою работу…
|
|||
28
Маленький Вопросик
18.10.25
✎
16:07
|
(25) я бы самолично сейчас кого-нибудь с удовольствием перевел - именно на КА2.5, УТ-ха мне уже поднадоела….
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |