Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 00:41
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Как выполнить вычисления в ячейке макета печатной формы (УНФ)?  (Прочитано 13434 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Bulat-IT

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 1
  • КПД: 8%
  • Регистрация: 2012-02-06
  • Сайт: 
  • Профессия: ГлавБух
Добрый вечер.

Я не профессиональный программист 1С, я больше системный администратор с некоторыми навыками программирования (Turbo Pascal, Delphi и всё такое), так что не обесудьте, если вопрос примитивный. В Яндексе несколько дней пробывал искать ответа, но безрезультатно.

Имеется конфа УНФ 1.3.2.5. Задача! В Счёте на оплату представить Поставщика и Покупателя следующим образом: только наименование жиром и отдельной строчкой, его реквизиты(ИНН, КПП, и всё что там есть еще) строчкой ниже без жира. В стандартном макете счёта имеется ячейка с заполнением "Параметр" в которой находится параметр "ПредставлениеПоставщика". В модуле документа этой строковой переменной присваивается значение типа такого: "ООО "Фирма", ИНН 1657895656, КПП... и т.д." Логично было бы использовать в ячейке, где должно появиться только наименование организации или контрагента, с заполненеим "Шаблон" примерно такую простенькую конструкцию: Лев([НаименованиеПоставщика],найти([НаименованиеПоставщика],", ИНН"). Ну, типа, из строки ПредставлениеПоставщика оставляем всё что слева от набора символов ", ИНН" - а это как раз названия контор.

Но не получается! В результате - пустая строка. Пытался всё выражение взять в квадратные скобки, и каждую функцию облачал в них. Ни как! Пытался использовать функции "Вычислить()" и "Выполнить()" - ни в какую.

НЕУЖЕЛИ НИКАК? НЕУЖЕЛИ ДЛЯ ЭТОЙ Лев([НаименованиеПоставщика],найти([НаименованиеПоставщика],", ИНН") ДЕЛАТЬ ЦЕЛУЮ ВНЕШНЮЮ ПЕЧАТНУЮ ФОРМУ? А?

Стал разбираться в технологии создания внешних печатных форм для приложения в управляемом режиме. Ну ребята!! Ну это же просто смешно!!!

Ради одного плюшевого: Лев([НаименованиеПоставщика],найти([НаименованиеПоставщика],", ИНН"), я должен описать экспортную функцию на пару экранов СведенияОВнешнейОбработке (), потом к ней надо описать функцию ПолучитьТаблицуКоманд(), и еще процедуру ДобавитьКоманду ().

Это всё для плюшевой Лев([НаименованиеПоставщика],найти([НаименованиеПоставщика],", ИНН")!!!

НЕУЖЕЛИ ТАК?!! НЕУЖЕЛИ НИ КАК?!!! Ну может быть есть вариантик, какой-нибудь. Мне еще акт выполненных работ, расходную накладную, и может быть Заказ покупателя переделывать также!


Оффлайн Bulat-IT

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 1
  • КПД: 8%
  • Регистрация: 2012-02-06
  • Сайт: 
  • Профессия: ГлавБух
И в догонку уж вопрос по этой же теме, если действительно в 1С: Предприятие 8 исключили эту возможность, хотя в 1С:Предприятие 7.7 она была.

Чем объясняют это в 1С? Как отмазываются от моего Лев([НаименованиеПоставщика],найти([НаименованиеПоставщика],", ИНН"), так сказать? Почему, то что в 1С:7.7 я бы сделал за три-четыре минуты, в новой и продвинутой 8-ке, я должен делать с помощью специалиста который выставит мне счет на пару часов своей работы (в Казани это где-то 2 тыр.)?

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Bulat-IT

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 1
  • КПД: 8%
  • Регистрация: 2012-02-06
  • Сайт: 
  • Профессия: ГлавБух
Лев() - прекрасно работает

Дорогой Dethmontt, подскажите пожалуйста, что я делаю не так.

В УНФ захожу -> Настройка и администрирование -> Макеты печатных форм -> Счет на оплату -> выбираю форму Счет на оплату.

Открывается макет. В ячейке где стоит Представление поставщика, в свойствах ячейки параметр Заполнение выставляю "Шаблон", в этой ячейке пишу: и так [Лев([ПредставлениеПоставщика], 4)], и так [Лев(ПредставлениеПоставщика, 4)]. Сохраняю, завершаю редактирование. Вывожу на печать счет. И на то, и на то 1С ругается: Поле объекта не обнаружено (ПредставлениеПоставщика).

А что насчет функции Найти(), она будет работать в макете? Ато мне ведь одного лев() не хватает, там же надо указать после какого по номеру символа нужно урезать строку? А у меня контрагенты есть и с 7-ю символами в названии, и с 27-ю. Что-то может быть посоветуете в этом плане.

Оффлайн AntonB

  • Модератор
  • *****
  • Сообщений: 402
  • РЕПУТАЦИЯ: 74
  • КПД: 18%
  • Регистрация: 2011-05-26
  • Сайт: 
  • Профессия: Программист 8.1
Вы в макете убили поле с именем "ПредставлениеПоставщика".
Поэтому когда в коде идет к нему обращение программа вылетает по ошибке.
Вам именно в этой строке в коде и нужно поставить Ваши "Лев(...)"
Предлагаю полный ИТ сервис небольшой организации в Москве (приходящий сисадмин+1С7.7,1С8.x)

Оффлайн Bulat-IT

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 1
  • КПД: 8%
  • Регистрация: 2012-02-06
  • Сайт: 
  • Профессия: ГлавБух
Вы в макете убили поле с именем "ПредставлениеПоставщика".
Поэтому когда в коде идет к нему обращение программа вылетает по ошибке.
Вам именно в этой строке в коде и нужно поставить Ваши "Лев(...)"

Спасибо что подсказали, я понял, но... всё равно не работает.

Вставил три ячейки с заполнением "Параметр", внутри содержащие ПредставлениеПоставщика вокруг нужной мне ячейки (думал потом белым шрифтом их спрячу). Всё равно нет. В трёх местах соответственно появилось полное ПредставлениеПоставщика, а в моей ячейке-шаблоне с [Лев(ПредставлениеПоставщика, 4)], выходит белое поле и всё. Если в этом выражении ПредставлениеПоставщика взять в квадратные скобки, в моей ячейке в результате появляется ", 4)]", т.е. 1С не воспринимает вложенности квадратных скобок друг в друга, ей достаточно один раз показать, что это выражение, дальше видимо она понимает, что внутри уже переменные. Но от этого понимания мне теплее не стало, где то натыкался на информацию, что якобы возможность выражений в макетах печатных форм не перенесли из 7.7. Если так, то почему?

DethMontt, ведь у вас работало лев(), какая же хитрость то есть. Поделитесь плиз.

Оффлайн AntonB

  • Модератор
  • *****
  • Сообщений: 402
  • РЕПУТАЦИЯ: 74
  • КПД: 18%
  • Регистрация: 2011-05-26
  • Сайт: 
  • Профессия: Программист 8.1
В УТ это делается в коде в строчке

ПараметрыПечати.Вставить("ПредставлениеПоставщика", ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,"));

Внутри " " можно указать, какую информацию нужно выводить.
А если хотите, можете сюда свое Лев(...) вставить
Предлагаю полный ИТ сервис небольшой организации в Москве (приходящий сисадмин+1С7.7,1С8.x)

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Bulat-IT

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 1
  • КПД: 8%
  • Регистрация: 2012-02-06
  • Сайт: 
  • Профессия: ГлавБух
В УТ это делается в коде в строчке

ПараметрыПечати.Вставить("ПредставлениеПоставщика", ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,"));

Внутри " " можно указать, какую информацию нужно выводить.
А если хотите, можете сюда свое Лев(...) вставить

Уважаемые, я дико извиняюсь за свою скажем так не врубаемость. Но у меня закралось ощущение, что мы с вами на разные темы говорим. Я спрашиваю, как это сделать непосредственно в макете документа, там где мы прочерчиваем необходимые блоки будующего печатного документа, а не в модуле документа, где можно подредактировать функцию печать(). Это я и сам знаю. Только УНФ на управлемых формах (если не ошибся в названии режима), и там чтобы это сделать нужно либо внести изменения в конфигурацию, со всеми вытекающими последствиями при каждом обновлении, либо, создать внешнюю печатную форму. Причем, создание печатной формы - это уже не дело пяти минут: копируем макет в новую внешнюю обработку, копируем функцию печать, делаем её экспортной, делаем СсылкуНаДокумент и всё. Ведь теперь нужно еще описание еще описание дополнительных функций, которые позволят вписать внешнюю форму в базу данных, и всё такое, там программирования на пару экранов, если я правильно понял.

Я спрашиваю именно о вычислениях внутри макета (грубо говоря, там где очень похоже на Excel), а не в модуле документа (там где очень похоже на программирование). Потому что УНФ, вполне себе стандартным способом прямо из рабочего режима (не из конфигуратора), позволяет практически налету изменить макет документа (где похоже на Excel), там есть отдельный пукнт в разделе настроек.

Оффлайн AntonB

  • Модератор
  • *****
  • Сообщений: 402
  • РЕПУТАЦИЯ: 74
  • КПД: 18%
  • Регистрация: 2011-05-26
  • Сайт: 
  • Профессия: Программист 8.1
Я же не предлагаю внешнюю печатную форму делать...

В той самой функции Печать (ничего никуда не копируя) нужно поменять одну строчку.
Одну строчку(!) - но в Модуле, а не в Макете.
А изменения заново Вы будете вносить все равно при каждом обновлении -
что в макете, что в модуле - они все равно слетят...

Теорию создания внешней печатной формы я не оспариваю...
но подозреваю, что сделать ее по этой инструкции все равно не получится :)
По крайней мере, я когда делал свою первую форму по инструкции, выяснил,
что она не работает... и потребовались еще некие танцы с бубном, чтобы она заработала :)
Предлагаю полный ИТ сервис небольшой организации в Москве (приходящий сисадмин+1С7.7,1С8.x)


Теги:
 

Не работает метод Сдвинуть() по отношению к программно добавляемой колонке1С:Предприятие 8.3 (8.3.10.2561) Управление производственным предприятием, редакция 1.4 Приветствую, я добавляю программно свою колонку в методе ПриОткрытии() модуля формы, вот так

Автор InsiderРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 301
Последний ответ 21 Сен 2017, 10:33
от Insider
Редактирование формы "Настройки пользователя".

Автор t955938Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 4828
Последний ответ 03 Авг 2011, 11:45
от t955938
получаю значение реквизита формы, дает значение 0

Автор mikel10Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3421
Последний ответ 12 Июл 2013, 15:35
от mikel10
Как обратиться к функции модуля формы из модуля Менеджера?

Автор TreeDogNightРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 5009
Последний ответ 10 Июл 2014, 14:05
от cska-fanat-kz
Настройка формы "Заполнение товаров"

Автор ЖаннаРаздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 593
Последний ответ 10 Мар 2017, 21:00
от Жанна

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
61 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 188
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal