Скидка в Товарном Чеке. Торговля и Склад 7.
Показывать по
10
20
40
сообщений
- 1
- 2
01.09.2007
00:23
#1
Можно ли настройками при печати товарного чека выводить скидку?
Пробую через конфигуратор - нашла печатную форму для Товарного чека, в разделе Строка хочу добавить поле скидка, но какое поле подставлять? Какое бы не подставляла - все время ошибка (в свойствах тип "Выражение" выставляла).
И как в подвале указать итоговую сумму скидки?
Пробую через конфигуратор - нашла печатную форму для Товарного чека, в разделе Строка хочу добавить поле скидка, но какое поле подставлять? Какое бы не подставляла - все время ошибка (в свойствах тип "Выражение" выставляла).
И как в подвале указать итоговую сумму скидки?
01.09.2007
01:09
#2
Есть, нашла методом подбора - СуммаСкидки.
Итого - (Итог("СуммаСкидки")>0, "+Скидка+": "+глФрм(Итог("СуммаСкидки"),глРубли), ")> - это в подвале, а вот вставить в строку как - не знаю
Итого - (Итог("СуммаСкидки")>0, "+Скидка+": "+глФрм(Итог("СуммаСкидки"),глРубли), ")> - это в подвале, а вот вставить в строку как - не знаю
01.09.2007
01:22
#3
Если задать СуммаСкидки, то печатает на двух листах, даже если одна позиция - это во первых,
а во вторых - если скидка нулевая - то лишний столбец, нужно как то извращаться.
а во вторых - если скидка нулевая - то лишний столбец, нужно как то извращаться.
01.09.2007
17:33
#4
Быстрее сделать, чем написать как сделать. Пригласите человека, который вам поможет. Тут работы на 2 минуты.
02.09.2007
13:00
#5
Колега, если не трудно - расскажите!
Просто кто к нам в Королев поедет? Больше денег за дорогу нужно будет заплатить...
Со временем я и сама разберусь - как никак - программисткое образование имеется.
Просто кто к нам в Королев поедет? Больше денег за дорогу нужно будет заплатить...
Со временем я и сама разберусь - как никак - программисткое образование имеется.
03.09.2007
13:03
#7
Отправила через внутренюю почту - и в ответ тишина.
А почему бы тут не написать?
Или среди программистов 1с есть договоренность - какие то вещи не опубликовывать?
А почему бы тут не написать?
Или среди программистов 1с есть договоренность - какие то вещи не опубликовывать?
03.09.2007
17:52
#8
нет, такой договоренности нет. Просто остальным не интересно читать "Hallow world".
03.09.2007
19:08
#9
"Суть в том, что сумма предоставленной скидки нигде в явном виде в базе не хранится. То есть, нет такого реквизита, в котором его можно было бы взять готовым. При заполнении формы диалога документа, если выбрана какая то скидка, мы видим дополнительную колонку "Скидка" с указанной суммой в денежном выражении. Но на самом деле это не реквизит, а текстовое поле, в котором вписана формула, выполняющаяся для тех строк, которые видны на экране. Стало быть, итог по ней не выведен и нам придется его посчитать самостоятельно. Пример решения привожу для релиза 7.70.946, хотя, думаю, что и в более свежих все точно так же. Делаем так:
1. Открываем нужную нам базу даных в режиме конфигуратора.
2. Сохраняем базу на тот случай, если у нас все получится криво, хоть будет откуда рабочую конфигурацию поднять.
3. Меню: Конфигурация-Открыть конфигурацию. В дереве: ветка Документы-РеализацияРозница. Жмем двойным кликом на этот объект и в появившемся окне жмем кнопку "Форма". Внизу видим 3 закладки, сейчас нас интересует закладка "Модуль". Выбираем ее.
4. Меню: Действия-Процедуры и функции модуля. Выделяем в списке процедуру ПечатьЧека и жмем кнопку "Перейти".
5. Видим алгоритм заполнения макета печатной формы "Товарный чек". Немного изменим его.
После строки:
ИтогПечСумма = 0;
добавляем
ИтогСуммаСкидки=0;
внутри цикла после строки:
ИтогПечСумма = ИтогПечСумма + ПечСумма;
добавляем
ИтогСуммаСкидки = ИтогСуммаСкидки + Окр(Цена*Количество,2,1)-Сумма;
В итоге после прохода по циклу мы будем иметь в переменной ИтогСуммаСкидки размер предоставленной скидки, выраженной в денежном выражении.
6. Теперь жмем внизу экрана закладку "Чек". Под строкой, в которой написано [глСуммаПрописью(ИтогПечСумма, глРубли)] жмем правой кнопкой мышки (у меня это нажатие на ячейку с координатами колонка 2, строчка 12) и выбираем в контекстном меню пункт "Свойства". В появившемся окне указываем, что в ячейке будет размещен Тип=Выражение и пишем само выражение:
?(ИтогСуммаСкидки=0,"""","Сумма предоставленной Вам скидки составляет: "+глФРМ(ИтогСуммаСкидки)+" руб.")
Вот и все, собственно. Сохраняемся, смотрим. Если хочется выводить скидку еще и построчно для каждого товара, то еще немного изменим конфигурацию.
7. Выделим все колонки имеющегося макета. У меня их 33. Теперь меню: Таблица-Включить в Секцию. Назовем секцию Основная.
8. Справа таблицы добавляем шапку новой колонки, в которой напишем "Сумма скидки" и строку, в которой будет формула глФРМ(ПечСуммаСкидки). Собственно, у меня это проще сделать так: выделяем прямоугольную область : "колонка 29, строка 6 - колонка 33, строка 8", через буфер обмена просто копируем ее справа таблицы и изменяем заголовок колонки и глФРМ(ПечСумма) на глФРМ(ПечСуммаСкидки).
9. Выделим колонки макета, которые появились справа от таблицы, то есть с 34 по 38. Меню: Таблица-Включить в Секцию. Назовем секцию СекцияСкидки.
10. Идем снова в модуль в нашу процедуру формирования печатной формы, в которой мы уже немного что то меняли. Перед ПечТаблица = СоздатьОбъект("Таблица");
пишем строчку:
ЕстьСкидка=?(Скидка.Процент>0,1,0);
ниже по тексту строки:
ПечТаблица.ВывестиСекцию("Шапка");
...
ПечТаблица.ВывестиСекцию("Строка");
...
ПечТаблица.ВывестиСекцию("Подвал");
меняем на:
ПечТаблица.ВывестиСекцию("Шапка|Основная");
Если ЕстьСкидка=1 Тогда
ПечТаблица.ПрисоединитьСекцию("Шапка|СекцияСкидки");
КонецЕсли;
...
ПечТаблица.ВывестиСекцию("Строка|Основная");
Если ЕстьСкидка=1 Тогда
ПечСуммаСкидки=Окр(Цена*Количество,2,1)-Сумма;
ПечТаблица.ПрисоединитьСекцию("Строка|СекцияСкидки");
КонецЕсли;
...
ПечТаблица.ВывестиСекцию("Подвал|Основная");
Если ЕстьСкидка=1 Тогда
ПечТаблица.ПрисоединитьСекцию("Подвал|СекцияСкидки");
КонецЕсли;
Ну, наверное и все.
Все будет работать, только есть одна маленькая "некрасивость". Обратите внимание на то, что у нас одна и та же конструкция написана два раза:
ИтогСуммаСкидки = ИтогСуммаСкидки + Окр(Цена*Количество,2,1)-Сумма;
ПечСуммаСкидки=Окр(Цена*Количество,2,1)-Сумма;
То есть, напрашивается перестановка строк и решение в виде:
ПечСуммаСкидки=Окр(Цена*Количество,2,1)-Сумма;
ИтогСуммаСкидки = ИтогСуммаСкидки + ПечСуммаСкидки;
так будет лучше с точки зрения правильности программирования, ну и быстродействия тоже, хотя, наверное, скажется только при очень больших табличных частях.
P.S. "Отправила через внутреннюю почту - и в ответ тишина". Я там буду в среду, почта извне не видна, доступ к почтовому серверу только из внутренней сети предприятия."
1. Открываем нужную нам базу даных в режиме конфигуратора.
2. Сохраняем базу на тот случай, если у нас все получится криво, хоть будет откуда рабочую конфигурацию поднять.
3. Меню: Конфигурация-Открыть конфигурацию. В дереве: ветка Документы-РеализацияРозница. Жмем двойным кликом на этот объект и в появившемся окне жмем кнопку "Форма". Внизу видим 3 закладки, сейчас нас интересует закладка "Модуль". Выбираем ее.
4. Меню: Действия-Процедуры и функции модуля. Выделяем в списке процедуру ПечатьЧека и жмем кнопку "Перейти".
5. Видим алгоритм заполнения макета печатной формы "Товарный чек". Немного изменим его.
После строки:
ИтогПечСумма = 0;
добавляем
ИтогСуммаСкидки=0;
внутри цикла после строки:
ИтогПечСумма = ИтогПечСумма + ПечСумма;
добавляем
ИтогСуммаСкидки = ИтогСуммаСкидки + Окр(Цена*Количество,2,1)-Сумма;
В итоге после прохода по циклу мы будем иметь в переменной ИтогСуммаСкидки размер предоставленной скидки, выраженной в денежном выражении.
6. Теперь жмем внизу экрана закладку "Чек". Под строкой, в которой написано [глСуммаПрописью(ИтогПечСумма, глРубли)] жмем правой кнопкой мышки (у меня это нажатие на ячейку с координатами колонка 2, строчка 12) и выбираем в контекстном меню пункт "Свойства". В появившемся окне указываем, что в ячейке будет размещен Тип=Выражение и пишем само выражение:
?(ИтогСуммаСкидки=0,"""","Сумма предоставленной Вам скидки составляет: "+глФРМ(ИтогСуммаСкидки)+" руб.")
Вот и все, собственно. Сохраняемся, смотрим. Если хочется выводить скидку еще и построчно для каждого товара, то еще немного изменим конфигурацию.
7. Выделим все колонки имеющегося макета. У меня их 33. Теперь меню: Таблица-Включить в Секцию. Назовем секцию Основная.
8. Справа таблицы добавляем шапку новой колонки, в которой напишем "Сумма скидки" и строку, в которой будет формула глФРМ(ПечСуммаСкидки). Собственно, у меня это проще сделать так: выделяем прямоугольную область : "колонка 29, строка 6 - колонка 33, строка 8", через буфер обмена просто копируем ее справа таблицы и изменяем заголовок колонки и глФРМ(ПечСумма) на глФРМ(ПечСуммаСкидки).
9. Выделим колонки макета, которые появились справа от таблицы, то есть с 34 по 38. Меню: Таблица-Включить в Секцию. Назовем секцию СекцияСкидки.
10. Идем снова в модуль в нашу процедуру формирования печатной формы, в которой мы уже немного что то меняли. Перед ПечТаблица = СоздатьОбъект("Таблица");
пишем строчку:
ЕстьСкидка=?(Скидка.Процент>0,1,0);
ниже по тексту строки:
ПечТаблица.ВывестиСекцию("Шапка");
...
ПечТаблица.ВывестиСекцию("Строка");
...
ПечТаблица.ВывестиСекцию("Подвал");
меняем на:
ПечТаблица.ВывестиСекцию("Шапка|Основная");
Если ЕстьСкидка=1 Тогда
ПечТаблица.ПрисоединитьСекцию("Шапка|СекцияСкидки");
КонецЕсли;
...
ПечТаблица.ВывестиСекцию("Строка|Основная");
Если ЕстьСкидка=1 Тогда
ПечСуммаСкидки=Окр(Цена*Количество,2,1)-Сумма;
ПечТаблица.ПрисоединитьСекцию("Строка|СекцияСкидки");
КонецЕсли;
...
ПечТаблица.ВывестиСекцию("Подвал|Основная");
Если ЕстьСкидка=1 Тогда
ПечТаблица.ПрисоединитьСекцию("Подвал|СекцияСкидки");
КонецЕсли;
Ну, наверное и все.
Все будет работать, только есть одна маленькая "некрасивость". Обратите внимание на то, что у нас одна и та же конструкция написана два раза:
ИтогСуммаСкидки = ИтогСуммаСкидки + Окр(Цена*Количество,2,1)-Сумма;
ПечСуммаСкидки=Окр(Цена*Количество,2,1)-Сумма;
То есть, напрашивается перестановка строк и решение в виде:
ПечСуммаСкидки=Окр(Цена*Количество,2,1)-Сумма;
ИтогСуммаСкидки = ИтогСуммаСкидки + ПечСуммаСкидки;
так будет лучше с точки зрения правильности программирования, ну и быстродействия тоже, хотя, наверное, скажется только при очень больших табличных частях.
P.S. "Отправила через внутреннюю почту - и в ответ тишина". Я там буду в среду, почта извне не видна, доступ к почтовому серверу только из внутренней сети предприятия."
04.09.2007
16:08
#10
Спасибо БОЛЬШОЕ!
У меня 944 версия.
Все что Вы написали - очень позновательно.
Узнала как работать с Секциями на конкретном примере.
Но, не помогло.
1) ЧекККМ печатается через Документы-ЧекККМ, выбирается он, а не РеализацияРозница - зачем кстати эти задвоенные формы по сути это одно и тоже. Я читала про внешние отчеты и общие таблицы, когда заменой внешнего отчета можно обновляться, но зачем тут оно два раза? А может и три?
2) Зачем вычислять скидку - когда можно в ячейке задать - СуммаСкидки?
У меня 944 версия.
Все что Вы написали - очень позновательно.
Узнала как работать с Секциями на конкретном примере.
Но, не помогло.
1) ЧекККМ печатается через Документы-ЧекККМ, выбирается он, а не РеализацияРозница - зачем кстати эти задвоенные формы по сути это одно и тоже. Я читала про внешние отчеты и общие таблицы, когда заменой внешнего отчета можно обновляться, но зачем тут оно два раза? А может и три?
2) Зачем вычислять скидку - когда можно в ячейке задать - СуммаСкидки?
- 1
- 2
Читают тему
(гостей: 1)