gifts2017

Групповая обработка справочников и документов с возможностью написания формул в поле "установить значение".

Опубликовал Dgonson Dgonson (dgonson) в раздел Обработки - Обработка документов

Групповая обработка справочников и документов с возможностью написания формул в поле "установить значение".

Часто приходится изменять какой-либо реквизит документов исходя из данных самого документа, например, изменить дату (или время)  n-го количества документов  не на определенную дату, а на Документ.Дата + 1 день, заменить текущий договор в документах на договор с наименованием "Основной", пересчитать сумму в ТЧ и тп. Что бы каждый раз не рисовать отдельную обработку доработал стандартную для работы с "формулами". В качестве "формулы" используется обычный код 1с с небольшими условиями.

Принцип действия следующий:

1. Стандартным методом отбираем необходимые данные на вкладку "Обработка".

2. Выбираем реквизит для изменения

3. Выбираем тип значения изменяемого реквизита "Строка" (по умолчанию там выбран тип изменяемого реквизита, жмем крестик, появляется Т , выбираем "Строка")

4. Пишем формулу. Правило написания формулы:

а. формула начинается со знака "="

б. Если в формуле требуется сослаться на реквизит он указывается в квадратных скобках - "[имя реквизита в конфигураторе]".

в. Обращение к шапке из ТЧ - "Объект.<ИмяРеквизита>"

Пример:

1. Требуется пересчитать реквизит "Сумма" в ТЧ документа. Выбираем реквизит для изменения "Сумма", пишем формулу "=[Цена]*[Количество]",где "Цена"  и "Количество" наименования реквизитов ТЧ.Результат будет присвоен выбранному реквизиту "Сумма". (формула пишется без кавычек =[Цена]*[Количество] :))

2. Обращение к шапке из ТЧ, например, заполнить склад в ТЧ из шапки  "=Объект.Склад".

3. Можно писать несколько строчек кода "=Объект.Склад;Сообщить(Строка(Объект.Склад));"

В общем эксперементируйте :)

Так же добавлена возможность работать не только с элементами справочников, но и с группами. Для этого при выборе иерархического справочника  появляется отбор "Это группа" по умолчанию установлено в "Ложь".

 

P.S. От комментариев и плюсов не откажусь.. :)

Скачать файлы

Наименование Файл Версия Размер
ГрупповаяОбработкаСправочниковИДокументов 461
.1246252448 45,75Kb
25.09.09
461
.1246252448 45,75Kb Скачать

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение

Комментарии

1. Яков Коган (Yashazz) 25.06.09 12:38
А чем типовая обработка не угодила? Там всё это давно есть...
2. Dgonson Dgonson (dgonson) 25.06.09 15:08
Хм. Незнаю...В моей версии не было...
3. Яков Коган (Yashazz) 25.06.09 16:38
Так она внешняя, на ИТСах есть. Просто обидно смотреть - вложено столько труда, притом что уже есть готовенькое.
4. Dgonson Dgonson (dgonson) 25.06.09 17:17
:) Не не обидно, этой обработке пару лет точно, свое отслужила. Посмотрю на ИТС, сравню :)
5. Dgonson Dgonson (dgonson) 26.06.09 10:30
На ИТС за 09 и 08 года не нашел...
6. pose 26.06.09 19:13
Ругается :
{Форма.Форма(123,8)}: Процедура или функция с указанным именем не определена (НапечататьДокументПоУмолчанию)
Если <<?>>НапечататьДокументПоУмолчанию(Объект, , НаПринтер) Тогда
7. Dgonson Dgonson (dgonson) 29.06.09 09:16
8. igor_gk (igor_gk) 01.07.09 17:15
9. Рамиль Гильфанов (yaxinr) 10.08.09 12:43
{Форма.Форма(109,147)}: Процедура или функция с указанным именем не определена (РазрешитьПечатьНепроведенныхДокументов)
Если Метаданные.Документы.Содержит(Объект.Метаданные()) и Объект.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить и Не <<?>>РазрешитьПечатьНепроведенныхДокументов(Объект.Проведен) Тогда
{Форма.Форма(120,18)}: Процедура или функция с указанным именем не определена (ПолучитьДеревоМакетовПечати)
ДеревоМакетов = <<?>>ПолучитьДеревоМакетовПечати(Объект.Ссылка, СтруктураВнутреннихПечатныхФорм);
{Форма.Форма(122,22)}: Процедура или функция с указанным именем не определена (ПолучитьСтрокуДереваМакетовПоУмолчанию)
СтрокаПоУмолчанию = <<?>>ПолучитьСтрокуДереваМакетовПоУмолчанию(Объект.Метаданные().Имя, ДеревоМакетов);
{Форма.Форма(133,17)}: Процедура или функция с указанным именем не определена (НапечататьВнешнююФорму)
ТабДокумент = <<?>>НапечататьВнешнююФорму(Объект.Ссылка, Расшифровка);
{Форма.Форма(134,3)}: Процедура или функция с указанным именем не определена (НапечататьДокумент)
<<?>>НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, СформироватьЗаголовокДокумента(Объект.Ссылка), Объект.Ссылка);
{Форма.Форма(134,69)}: Процедура или функция с указанным именем не определе
10. Dgonson Dgonson (dgonson) 10.08.09 16:17
11. Евгений Григорьев (grigr) 08.09.09 19:00
на ИТС - УниверсальныеПодборИОбработкаОбъектов.epf
там можно на обработку реквизита задавать произвольный алгоритм
bluntschi; +1 Ответить
12. Dgonson Dgonson (dgonson) 10.09.09 14:05
Она не обрабатывает ТЧ... По крайней мере я не нашел как она это делает :)
13. Света Иванова (ecoavs) 26.04.11 13:19
Огромнейшее спасибо, все работает отлично!!! Правда возникли некоторые ошибки, исправила. Тестировалось на бух 2.0 1С 8.2 :D
14. Василий Керендов (Saab) 08.08.11 13:19
{Форма.Форма(109,147)}: Процедура или функция с указанным именем не определена (РазрешитьПечатьНепроведенныхДокументов)
Если Метаданные.Документы.Содержит(Объект.Метаданные()) и Объект.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить и Не <<?>>РазрешитьПечатьНепроведенныхДокументов(Объект.Проведен) Тогда
{Форма.Форма(120,18)}: Процедура или функция с указанным именем не определена (ПолучитьДеревоМакетовПечати)
ДеревоМакетов = <<?>>ПолучитьДеревоМакетовПечати(Объект.Ссылка, СтруктураВнутреннихПечатныхФорм);
{Форма.Форма(122,22)}: Процедура или функция с указанным именем не определена (ПолучитьСтрокуДереваМакетовПоУмолчанию)
СтрокаПоУмолчанию = <<?>>ПолучитьСтрокуДереваМакетовПоУмолчанию(Объект.Метаданные().Имя, ДеревоМакетов);
{Форма.Форма(133,17)}: Процедура или функция с указанным именем не определена (НапечататьВнешнююФорму)
ТабДокумент = <<?>>НапечататьВнешнююФорму(Объект.Ссылка, Расшифровка);
{Форма.Форма(134,3)}: Процедура или функция с указанным именем не определена (НапечататьДокумент)
<<?>>НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, СформироватьЗаголовокДокумента(Объект.Ссылка), Объект.Ссылка);
{Форма.Форма(134,69)}: Процедура или функция с указанным именем не определена (СформироватьЗаголовокДокумента)
НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, <<?>>СформироватьЗаголовокДокумента(Объект.Ссылка), Объект.Ссылка);


1С:Предприятие 8.1 (8.1.15.14)
Бухгалтерия предприятия, редакция 1.6 (1.6.21.6)

ошибка одна и та же в обоих конфах и платформах

1С:Предприятие 8.2 (8.2.13.219)
1С:Предприятие 8. Бухгалтерия, редакция 2.0 (2.0.19.12)

помогите исправить ошибки плиз
15. Алия Саитова (nuoHePka) 26.08.11 13:15
процедуры для печати закомментировала за ненадобностью и всё заработало, спасибо
16. Ольга Пеймер (Olga_Peymer) 24.11.16 11:42
Огромнейшее спасибо! Нужно было изменить расценку на 5% (КА 1.1 в технологических операциях). Все получилось!
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа