С Новым годом! Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/37: Рейтинг темы: голосов - 37, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 8
1
1C 8.x

Печать шаблона из поля ввода в макете

20.11.2013, 23:27. Показов 7414. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане!
Я только начинаю программировать на 1С, столкнулся с одной задачкой, но хоть убей мыслей нет как решить...
Взял за пример документ реализацию товаров и услуг, создал реквизит "параметры" с типом строка, на форме создал поле ввода, в нем указал в данных реквизит "параметры". В общем макете ТОРГ-12 в шапке у ячейки задал тип шаблон, а теперь собственно задачка...
Как мне сделать так, что бы например я ввожу в поле ввода текст вида
1C
1
"Дата формирования документа: "+#ДатаДокумента#
и что бы он подставлялся в макет (уже в виде: Дата формирования документа: 20.11.2013 00:00)?. При чем значения не оговоренные заранее, что бы можно было в любой момент написать шаблон с одним и более параметром и это все подставлялось в макет.
Как запихнуть это все в макет? Прошу помочь, спать не смогу ведь, пока задачу не решу... Хотя бы в каком направлении копать??? Интересует очень какой тип должен быть у реквизита, нужно ли параметр переводить в строку/обратно и как (были ошибки такие просто), может быть я не правильно задал шаблон...
2 дня думаю уже никак придумать не могу
Код приводить не буду, так как, в силу тех знаний, которыми я обладаю на данный момент по 1с, просто стыдно
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.11.2013, 23:27
Ответы с готовыми решениями:

Печать таблицы в макете
Как можно сделать чтобы при формировании макета отчета строки таблицы выводились не в низ а в право?

Группировка строк в макете Печать
Есть макет Печать, по справочнику Курсы. Нужно чтобы имя каждого преподавателя выводилось только...

Как числа из поля ввода в программе отправить в поле ввода браузера?
Есть обработчик кнопки ,в поле ввода- числа. Как из поля программы отправить эти числа в нужное...

Очистка поля ввода Edit для следующего ввода значения
Здравствуйте! Необходим совет. Нужно реализовать следующую возможность: в поле ввода Edit вводится...

15
286 / 186 / 18
Регистрация: 20.02.2012
Сообщений: 926
21.11.2013, 09:14 2
хоть убей я ничего не понял.
0
11 / 11 / 3
Регистрация: 20.04.2010
Сообщений: 114
21.11.2013, 09:32 3
Тебе нужно в макете задать тогда заполнение не шаблон, а параметр. Примерно это выглядеть должно так:
1C
1
2
3
4
макет=ДокументОбъект.ПолучитьМакет("макет");
шапка=макет.ПолучитьОбласть("Шапка");
ТвояСтрока="Дата формирования документа:" + параметр из формы;
шапка.Параметры.ТвойПараметрВмакете=ТвояСтрока;
0
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 8
21.11.2013, 10:06  [ТС] 4
Цитата Сообщение от maxon_p.j Посмотреть сообщение
Тебе нужно в макете задать тогда заполнение не шаблон, а параметр. Примерно это выглядеть должно так:
1C
1
2
3
4
макет=ДокументОбъект.ПолучитьМакет("макет");
шапка=макет.ПолучитьОбласть("Шапка");
ТвояСтрока="Дата формирования документа:" + параметр из формы;
шапка.Параметры.ТвойПараметрВмакете=ТвояСтрока;
Спасибо, но я так понял это предопределено будет? Я просто хотел что бы в макете был некий параметр, например <МойПараметр>, у ячейки тип шаблон (как я себе это представляю), а на форме я собственно задаю шаблон, ну например:
"Документ номер: "+#НомерДокумента#+"от "+#ДатаДокумента#+", выдан: "+#ПредставлениеОрганизации#
ну и в таком духе, причем что бы можно было менять как угодно, ну что бы не в макете задавался текст с параметрами, а что бы они туда попадали при печати торг12. Направьте пожалуйста в нужное русло?=(
P.S. прошу прощения, если некорректно выражаюсь, напоминаю, что я только начал на 1с программировать...
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
21.11.2013, 10:48 5
Шаблон в ячейке это
Документ номер:[Номер] от [Дата]
0
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 8
21.11.2013, 14:20  [ТС] 6
Цитата Сообщение от duk337 Посмотреть сообщение
Шаблон в ячейке это
Документ номер:[Номер] от [Дата]
Спасибо, но это тоже будет же предопределено заранее...( Нужно именно что бы данные введенные в поле ввода в режиме предприятие в виде шаблона печатались в макете (при чем в макете будет одна ячейка с одним параметром вида шаблон, как я представляю). Поправьте пожалуйста, если ошибаюсь.

Добавлено через 2 часа 21 минуту
Цитата Сообщение от duk337 Посмотреть сообщение
Шаблон в ячейке это
Документ номер:[Номер] от [Дата]
Андрей, в общем реализовал частично так то что хотел:

1C
1
ОбластьМакетаШапка.Параметры.Пар1 = ЭтотОбъект.МойПараметр;
где Пар1 - параметр в макете, МойПараметр - реквизит

Выводить-то выводит, но только с типом ячейки параметр (то есть грубо говоря текст), хотя нужен шаблон, там же несколько будет параметров содержаться.
Как мне донести до 1с, что нужно "Текст1: "+[параметр1]+"Текст2: "+[параметр2] заменить в макете при печати на Текст 1: ЗначениеПараметра1 Текст2: ЗначениеПараметра2
Подскажите пожалуйста, как грамотно перевести спец. символы типа [], либо ##, либо еще какой любой другой и текст содержащийся между спец. символов как параметр? Буду очень вам признателен!)
P.S. СтрЗаменить тут поможет? Как это реализовать для нескольких параметров? Для текста еще просто я понимаю как пользоваться этой функцией, но тут идей ноль(
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
21.11.2013, 14:33 7
В шаблоне то, что в квадратных скобках - такие же параметры. Ячейку сделать типом Шаблон и записать туда выражение с квадратными скобками без всяких кавычек и пр.
0
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 8
21.11.2013, 14:50  [ТС] 8
Цитата Сообщение от duk337 Посмотреть сообщение
В шаблоне то, что в квадратных скобках - такие же параметры. Ячейку сделать типом Шаблон и записать туда выражение с квадратными скобками без всяких кавычек и пр.
Ну в ячейке это можно, но только нужно, что бы я в документе в поле ввода вводил произвольный текст, параметры в произвольном порядке: либо [ВТакихСкобках], либо #ВТакихСпецСимволах# и что бы все это отрисовывалось в макете. Это сложно реализовать будет, скажите пожалуйста?)
Как мне сделать что бы 1с понимала, что в спец.символах параметр и отрисовала в макете (в ячейке с типом шаблон) то, что написал в поле ввода?
P.S. если не очень корректно объяснил простите пожалуйста, только начинаю
0
11 / 11 / 3
Регистрация: 20.04.2010
Сообщений: 114
21.11.2013, 16:06 9
Посмотри пример во вложение может натолкнет на мысль.
Вложения
Тип файла: rar Тест.rar (5.0 Кб, 29 просмотров)
1
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
21.11.2013, 18:37 10
Ну так вычисли значение параметра перед выводом по макрухе, которую вводят. Причем здесь макет? А уж какой лексический процессор напишешь, такой и будет, с любыми зюками. В таких случаях оптимальнее зашифровывать алгоритм вычисления числа или строки, а не пытаться воссоздать визуальный образ. Наиболее простой метод СтрЗаменить(), напр. рез=СтрЗаменить(СтрокаКода,"[Контрик]",Контрагент.Наименование)
1
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 8
22.11.2013, 01:02  [ТС] 11
Цитата Сообщение от duk337 Посмотреть сообщение
Ну так вычисли значение параметра перед выводом по макрухе, которую вводят. Причем здесь макет? А уж какой лексический процессор напишешь, такой и будет, с любыми зюками. В таких случаях оптимальнее зашифровывать алгоритм вычисления числа или строки, а не пытаться воссоздать визуальный образ. Наиболее простой метод СтрЗаменить(), напр. рез=СтрЗаменить(СтрокаКода,"[Контрик]",Контрагент.Наименование)
Спасибо огромное! Свою задумку я реализовал так:
1C
1
2
3
4
5
стр=МойРеквизит;
результат=СтрЗаменить(стр, "[Организация]", Организация);
результат=СтрЗаменить(стр, "[Дата]", Дата);
результат=СтрЗаменить(стр, "[Номер]", Номер); 
ОбластьМакетаШапка.Параметры.Пар1 = Результат;
Проблема только в том, что заменяется только последний параметр, то есть номер, если текст в поле ввода формы не равен [номер], то в торг12 печатать будет просто текст из поля ввода документа Объясните пожалуйста как сделать что бы происходил обход всей строки в поле ввода формы и автоматическое подставление замененных параметров в торг12? Может как-то это циклом можно сделать?
0
Модератор
Эксперт 1С
4029 / 2974 / 591
Регистрация: 10.03.2011
Сообщений: 11,703
Записей в блоге: 1
22.11.2013, 02:22 12
Мееееееддленноо...

1. В ячейку макета пишем следующий текст:
Документ [ПараметрНомер] от [ПараметрДата]: на организацию [ПараметрОрганизация]
2. В свойствах ячейки выбираем способ заполнения: Шаблон
Сохраняем...
3. Далее в коде можно использовать подставление значений для этих параметров

1C
1
2
3
ОбластьМакета.Параметры.ПараметрНомер = "2353445";
ОбластьМакета.Параметры.ПараметрДата= ТекущаяДата();
ОбластьМакета.Параметры.ПараметрОрганизация= "ООО РОМАШКА";
Добавлено через 5 минут
З.Ы. В область должна входить эта ячейка
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
22.11.2013, 13:50 13
1C
1
2
3
4
5
результат=МойРеквизит;
результат=СтрЗаменить(результат, "[Организация]", Организация);
результат=СтрЗаменить(результат, "[Дата]", Дата);
результат=СтрЗаменить(результат, "[Номер]", Номер); 
ОбластьМакетаШапка.Параметры.Пар1 = Результат;
1
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 8
22.11.2013, 22:40  [ТС] 14
Цитата Сообщение от duk337 Посмотреть сообщение
1C
1
2
3
4
5
результат=МойРеквизит;
результат=СтрЗаменить(результат, "[Организация]", Организация);
результат=СтрЗаменить(результат, "[Дата]", Дата);
результат=СтрЗаменить(результат, "[Номер]", Номер); 
ОбластьМакетаШапка.Параметры.Пар1 = Результат;
Спасибо Вам огромное! цель достигнута
Но странно, хотя я тоже самое писал (вроде как), только вместо результата был стр, результат я позже добавил, хотел промежуточную строку слепить, но не получилось(
Не подскажете еще вопрос такой, как можно это оптимизировать? Так как придется описывать замену для каждого параметра, а строчек много получается. Не принципиально, просто интересно как можно реализовать такое в данной ситуации и возможно ли вообще. Циклом например или условием это можно реализовать?
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
22.11.2013, 23:19 15
1C
1
2
3
4
стр=ПолеРез;
Для Каждого Рекв Из ЭтотОбъект.Метаданные().Реквизиты Цикл
стр=СтрЗаменить(стр,"["+Рекв.Имя+"]",""+ЭтотОбъект[Рекв.Имя]);
КонецЦикла;
0
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 8
24.11.2013, 19:14  [ТС] 16
Цитата Сообщение от duk337 Посмотреть сообщение
1C
1
2
3
4
стр=ПолеРез;
Для Каждого Рекв Из ЭтотОбъект.Метаданные().Реквизиты Цикл
стр=СтрЗаменить(стр,"["+Рекв.Имя+"]",""+ЭтотОбъект[Рекв.Имя]);
КонецЦикла;
Спасибо вам огромное!!! Все работает
0
24.11.2013, 19:14
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.11.2013, 19:14
Помогаю со студенческими работами здесь

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

Создание и печать шаблона C#
Всем доброго времени суток! Может кто подсказать, как создать шаблон документа и распечатать его...

Динамическое изменение маски ввода поля по значению из поля со списком
Есть две таблицы. В Т1 есть поле со списком &quot;Гражданство&quot;, значения берутся из Т2. Т2 имеет три...

Задание ключом в объекте - значение поля ввода при динамическом создании поля
$(function() { var values = {}; $('&lt;br /&gt;'+ '&lt;input type=&quot;text&quot; class=&quot;field&quot;...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru