Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
Добрый день. Мне поставил директор задание - в целях экономии бумаги сделать так, чтобы акты печатались на одном листе. Т.е. два одинаковых акта на одном листке А4. Может кто нибудь знает как это делается. Или хотя бы подскажите где найти информацию об этом. Может приблизительно направьте в нужном направлении. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2009, 19:00 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
imperator-boxer, Только исправлять печатную форму и процедуру печати. Ну и контролировать чтобы за пределы страницы не выехало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2009, 20:08 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
Имеется ввиду два экземляра одного Акта? Или два разных акта, которые по размерам входят на одну страницу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 03:57 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
Defender77+1 чуть подробнее зайдите в табличную часть документа скопируйте все строки по горизонтали, где обозначен "акт" и вставьте эти строки, ниже. обзовите эти строки, например "акт2" в модуле, точнее в процедуре печати, добавьте строку Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 07:37 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
Имелось ввиду два одинаковых акта на листе. Чтобы они располагались на альбомном листе два рядом, а не как в ворде подряд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 09:45 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
VoditelKobylyИмеется ввиду два экземляра одного Акта? Или два разных акта, которые по размерам входят на одну страницу? Имеется ввиду два экземляра одного Акта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 10:57 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
Тогда можно в процедуре печати просто повторить одни и теже команды вывода в таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 11:26 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
VoditelKobyly, а как это приблезительно выглядит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 12:18 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
Надо смотреть что за конфигурация. Обычно, документ из которого идет печать акта содержит какую-нибудь процедуру Печать() (или чего-то подобное, узнать можно на форме документа). И обычно после создания объекта Таблицы и до показа этой таблицы идут команды вывода в неё. Что-то типа: Процедура Печать(СразуНаПринтер = 0,КолЭкз = 1) Перем КолвоНаСтранице; Перем ВысотаПодвала; Перем ТекСтрокаНаСтр, ТекСтрока; Перем ПечФорма; Перем Поз; Если Проведен() = 0 Тогда Предупреждение("Форму ТОРГ-16 можно распечатать только после проведения!", 60); Возврат; ИначеЕсли Модифицированность() = 1 Тогда Предупреждение("Форму ТОРГ-16 можно распечатать только после перепроведения!", 60); Возврат; КонецЕсли; СуммаИтого = 0; //******************************************************************************** КолвоНаТитСтранице = 24; КолвоНаСтранице = 40; ВысотаПодвала = 13; СтрокНаТекСтранице = 0; ТекСтрокаНаСтр = 1; ТекСтрока = 1; НачалоПовтора = 1; КонецПовтора = 1; ТекСтрокаТитСтр = 1; ТекТитСтр = 1; ПечФорма = СоздатьОбъект("Таблица"); Потом идут команды вывода. И заканчивается всё это командой показа. Что-то типа: Если СразуНаПринтер = 0 Тогда ПечФорма.ПараметрыСтраницы(,,,,,,,,,1,,); ПечФорма.Опции(0, 0, 0, 0, ПарСтрДок, ПарСтрДок); Если глПолучитьПолномочие("РазрешитьРедактированиеТаблиц") = 0 Тогда ПечФорма.Защита(1); Иначе ПечФорма.Защита(0); КонецЕсли; ПечФорма.ТолькоПросмотр(1); ПечФорма.Показать(глНазваниеДокументаВжурнале(Контекст),""); Иначе ПечФорма.ПараметрыСтраницы(,,,,,,,,,1,,); ПечФорма.КоличествоЭкземпляров(КолЭкз); ПечФорма.Напечатать(0); КонецЕсли; Так вот кусок кода между двумя этими блоками копируешь и вставляешь ещё раз. В принципе всё делается довольно быстро. Если печатная форма оформлена внешним отчетом, то вообще проблем никаких нет. Делай копию файла ert с новым именем, такую же копию файла efd меняй названия на свои внутри efd и пробуй сколько влезет. Никому мешать не будешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 12:36 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
Хочешь подробней пиши на почту. Шли свою программу, мд-ник или внешнюю обработку. Там работы много нет сделаю бесплатно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 12:40 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
а что, 7-ка уже умеет корректно разделять на страницы: влазит-не влазит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 12:43 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
ещё вариант Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 12:44 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
Господин ПЖ, а вы как обычно определяете входит на страницу или нет? Я по количеству строк ориентируюсь. Если строк больше определенного для каждого акта (отчета) количества, то надо начинать новый акт с новой страницы, иначе можно и на старой второй напечатать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 13:12 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
ну для 7-ки так. Я просто думал может по-другому у вас ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 13:19 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
Может это наглость с моей стороны, но, пожалуйста, тыкните пальцем, что надо сделать. // Описание переменных Перем СписокДействий; Перем СтарыйКонтрагент; Перем СтараяДата; Перем СтарСклад; Перем НачальнаяДатаДокумента; Перем ОстаткиТоваров, РезервыТоваров, ОбщРег; Перем ВидимостьТипа; // =============================== // "служебные" функции и процедуры // =============================== Процедура ПересчетРегистров() ОбщРег=СоздатьОбъект("Регистры"); ОстаткиТоваров=ОбщРег.ОстаткиТоваров; РезервыТоваров=ОбщРег.РезервыТоваров; КонецПроцедуры // =============================== Процедура УстДоступностьКнопок() Если Форма.ТолькоПросмотр()=1 Тогда Форма.кОК.Доступность(0); Форма.кПровести.Доступность(0); Форма.кЧастично.Доступность(0); Форма.кДействия.Доступность(0); Форма.кФирма.Доступность(0); Форма.кОсн.Доступность(0); Форма.кВалюта.Доступность(0); Форма.кПодбор.Доступность(0); Форма.КнопкаПоУмолчанию("кЗакрыть"); Иначе Форма.КнопкаПоУмолчанию("кОК"); КонецЕсли; КонецПроцедуры // =============================== Функция УстДоступность() Форма.Заголовок(глЗаголовок(Контекст,"Оказание услуг ")); Если ВидТорговли = Перечисление.ВидыТорговли.Нал Тогда ДостКасса = 1; Иначе ДостКасса = 0; КонецЕсли; Форма.Касса.Видимость(ДостКасса); Форма.тКассы.Видимость(ДостКасса); Форма.Тип.Видимость(ВидимостьТипа); Форма.тТип.Видимость(ВидимостьТипа); Возврат ""; КонецФункции // =============================== Процедура ВыбранВидТорговли() Если ВидТорговли = Перечисление.ВидыТорговли.Бартер тогда Если Договор.Выбран() = 1 тогда Если Договор.Вид()="Договор" Тогда Если Договор.ВидТорговли <> ВидТорговли тогда глКомментарий(Шаблон("Вид торговли не сответствует договору - должен быть [Договор.ВидТорговли]!!!"),1); ВидТорговли = Договор.ВидТорговли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; спВидТорговли.ТекущаяСтрока(спВидТорговли.НайтиЗначение(ВидТорговли)); КонецПроцедуры // =============================== Процедура ИзмВидТорговли() ВидТорговли = спВидТорговли.ПолучитьЗначение(спВидТорговли.ТекущаяСтрока()); ВыбранВидТорговли(); КонецПроцедуры // =============================== Процедура ЗаполнитьСпВидТорговли() спВидТорговли.ДобавитьЗначение(Перечисление.ВидыТорговли.Нал,Строка(Перечисление.ВидыТорговли.Нал)); спВидТорговли.ДобавитьЗначение(Перечисление.ВидыТорговли.Предоплата,Строка(Перечисление.ВидыТорговли.Предоплата)); спВидТорговли.ДобавитьЗначение(Перечисление.ВидыТорговли.Бартер,Строка(Перечисление.ВидыТорговли.Бартер)); спВидТорговли.ДобавитьЗначение(Перечисление.ВидыТорговли.Кредит,Строка(Перечисление.ВидыТорговли.Кредит)); КонецПроцедуры // =============================== Процедура ИзмВидНДС() ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл глВыч_суммы_накл(Контекст); КонецЦикла; КонецПроцедуры // =============================== Процедура ПровестиДокумент() глПроверкаДатыДок(Контекст,"Проведение","Т"); Если СтатусВозврата()=0 Тогда Возврат; КонецЕсли; Провести(); Если Проведен() = 1 Тогда УстДоступностьКнопок(); КонецЕсли; КонецПроцедуры // =============================== Процедура ЧастичноПровести() фМожноПроводить = 1; Если Проведен()=1 Тогда Если РежимПроведения=0 Тогда фМожноПроводить = 0; Предупреждение("Документ "+ПредставлениеВида()+" № "+СокрЛП(НомерДок)+" от "+Формат(ДатаДок,"ДДММГГГГ")+ " полностью проведен. Предварительное проведение невозможно."); КонецЕсли; ИначеЕсли ДатаДок<ПолучитьДатуТА() Тогда фМожноПроводить = 0; Предупреждение("Предварительное проведение задним числом невозможно."); ИначеЕсли ДатаДок<>РабочаяДата() Тогда фМожноПроводить = 0; Предупреждение("Дата документа "+ПредставлениеВида()+" № "+СокрЛП(НомерДок)+" от "+Формат(ДатаДок,"ДДММГГГГ")+ " отличается от рабочей даты ("+Формат(РабочаяДата(),"ДДММГГГГ")+"). Предварительное проведение невозможно."); КонецЕсли; Если фМожноПроводить = 1 Тогда Провести(3,1); Если Проведен() = 1 Тогда УстДоступностьКнопок(); КонецЕсли; КонецЕсли; КонецПроцедуры // =============================== Процедура ИзмДатаДок() глПриИзмененииДатыДокумента(Контекст, СтараяДата); КонецПроцедуры // =============================== Процедура ИзмФирма() глУстФирма(Контекст); ВидимостьТипа = Форма.Тип.Видимость(); КонецПроцедуры // =============================== Функция Итого() // Показ итоговых сумм по документу Перем Результат,СуммаБезНДС, СуммаСНДС, СуммаНДС; СуммаБезНДС = Итог("СуммаБезНДС"); СуммаСНДС = Итог("СуммаСНДС"); СуммаНДС = СуммаСНДС - СуммаБезНДС; Результат = ?(СуммаБезНДС =0,"","Сумма="+ глФРМ(СуммаБезНДС, Валюта, 1))+ ?(СуммаНДС = 0,""," НДС=" + глФРМ(СуммаНДС, Валюта, 1)+ ?(СуммаСНДС = 0,""," Всего=" + глФРМ(СуммаСНДС, Валюта, 1))); Возврат Результат; КонецФункции // =============================== // функции и процедуры, вызываемые из формул элементов диалога // =============================== Процедура Взаиморасчеты() глПоказатьДолг(Контекст, Контрагент, "Продажа"); КонецПроцедуры // =============================== Процедура Подбор() Варианы= СоздатьОбъект("СписокЗначений"); Варианы.ДобавитьЗначение("&каталог"); Варианы.ДобавитьЗначение("&прайс"); Результат = 0; Если Варианы.ВыбратьЗначение(,,Результат,,1)=1 Тогда Если Результат = 1 Тогда глПодбор(Контекст,"ТМЦ","ДляПодбора") ИначеЕсли Результат = 2 Тогда глПодбор(Контекст,"прайс_лист","ДляПодбора") КонецЕсли; КонецЕсли; КонецПроцедуры // =============================== Процедура ВыборОплаты() // Процедура по кнопке редактирования параметров оплаты в докумнете Перем СтараяКатегорияЦен; СтараяКатегорияЦен = КатегорияЦен; ОткрытьФормуМодально("Обработка.ИнформацияОВалюте", Контекст); Если СтараяКатегорияЦен <> КатегорияЦен Тогда // изменилась категория цен // перерисуем Если ПустоеЗначение(КонтекстПодбора) = 0 Тогда КонтекстПодбора.Форма.Обновить(); КонецЕсли; КонецЕсли; КонецПроцедуры // =============================== Процедура ИзмКонтрагент() // Процедура при выборе Контрагента в докумнете Если Контрагент.Выбран()=1 Тогда Если СтарыйКонтрагент <> Контрагент Тогда // изменили Контрагента Если (глВосстановитьЗначение(,"ПодставлятьОсновнойДоговор") = Да) и (Фирма = Контрагент.БазДоговор.Фирма) Тогда // подставим договор по умолчанию Договор = Контрагент.БазДоговор; Иначе // очистим договор Договор = ПолучитьПустоеЗначение("Документ.Договор"); КонецЕсли; ДокументОснование = ПолучитьПустоеЗначение("Документ"); Основание = ""; Если ПустоеЗначение(Контрагент.КатегорияЦен) = 0 Тогда КатегорияЦен = Контрагент.КатегорияЦен; Иначе КатегорияЦен = глВосстановитьЗначение(,"ОсновнаяКатегорияЦен"); КонецЕсли; КонецЕсли; Иначе //Не выбран Контрагент - не имеет смысла показывать глубину и дату оплаты и договор Договор = ПолучитьПустоеЗначение("Документ.Договор"); КонецЕсли; // Формирует и показывает дату оплаты СтарыйКонтрагент = Контрагент; КонецПроцедуры // =============================== Процедура ИзмДоговор() Если ПустоеЗначение(Договор)=0 Тогда Если Договор.Вид()="Договор" Тогда Если спВидТорговли.Принадлежит(Договор.ВидТорговли)=0 Тогда глКомментарий(Шаблон("Нельзя выбирать Договор с видом торговли [Договор.ВидТорговли]!!!"),1); Договор=0; Иначе ВидТорговли = Договор.ВидТорговли; ВыбранВидТорговли(); КонецЕсли; КонецЕсли; Иначе ЗасчитыватьОплатуПоСлужДоговору = 1; КонецЕсли; КонецПроцедуры // =============================== Процедура ПриВводеНаОсновании(ДокОснование) Перем ВидОсн; Перем ВремСклад, ВремВалюта; Перем ВремДата_Курса, ВремКурс; Перем ВремКонтрагент, ВремДоговор; Если ПустоеЗначение(ДокОснование) = 1 Тогда Возврат; КонецЕсли; ВидОсн = ДокОснование.Вид(); КурсИзСправочника = 0; Если (ВидОсн="Счет") Тогда Валюта = ДокОснование.Валюта; Если Валюта = Гривня Тогда // если Валюта - гривня, курс возьмем из документа-основания Дата_Курса = ДокОснование.ДатаДок; Курс = ДокОснование.Курс; Иначе // Валюта - не гривня, курс возьмем из справочника на дату документа КурсИзСправочника = 1; КонецЕсли; ИначеЕсли (ВидОсн="Т_ВводОстатковТоваров") Тогда Валюта = Гривня; // Курс всегда берем из справочника на дату документа КурсИзСправочника = 1; Контрагент = ДокОснование.Поставщик; ИначеЕсли (ВидОсн="Т_ПриходнаяНакладная") тогда // приходная накладная Валюта = ДокОснование.Валюта; Если Валюта = Гривня Тогда // если Валюта - гривня, курс возьмем из документа-основания Дата_Курса = ДокОснование.Дата_Курса; Курс=ДокОснование.Курс; Иначе // Валюта - не гривня, курс возьмем из справочника на дату документа КурсИзСправочника = 1; КонецЕсли; ИначеЕсли (ВидОсн="Договор") тогда Валюта = ДокОснование.Валюта; // Курс всегда берем из справочника на дату документа КурсИзСправочника = 1; КонецЕсли; Если КурсИзСправочника = 1 Тогда Дата_Курса = ДатаДок; Курс = глКурсДляВалюты(Валюта,Дата_Курса); КонецЕсли; глЗаполнитьШапкуНаОсн(Контекст,ДокОснование); ВыбранВидТорговли(); ИзмДоговор(); Если ВидОсн <> "Договор" Тогда Если КоличествоСтрок() <> 0 Тогда Если Вопрос("Перезаполнить табличную часть?",4) = 6 Тогда УдалитьСтроки(); Иначе Возврат; КонецЕсли; КонецЕсли; глСкопироватьТовСостав(Контекст,ДокОснование); Если глВосстановитьЗначение(,"НачальноеЗаполнение") = Да тогда Если ДокументОснование.Вид() = "Счет" тогда // если основание - Счет, заполняем остатками резерва текТовар = ""; // для правильного разнесения резерва по дублирующимся строкам КвоРезерв = 0; ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл // услуги не резервируются Если Товар.ВидТМЦ = Перечисление.ВидыТМЦ.Услуга Тогда Продолжить; КонецЕсли; Если текТовар <> Товар Тогда КвоРезерв = Регистр.РезервыТоваров.СводныйОстаток(Товар,ДокументОснование,"РезервТовара"); текТовар = Товар; КонецЕсли; текКво = Мин(Кво,КвоРезерв/Коэффициент); Кво = текКво; КвоРезерв = КвоРезерв - текКво; глВыч_суммы_накл(Контекст); КонецЦикла; КонецЕсли; // удаляем сторки с количеством 0 ТаблЧ = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(ТаблЧ); КСтр = ТаблЧ.КоличествоСтрок(); Пока КСтр <> 0 цикл ТаблЧ.ПолучитьСтрокуПоНомеру(КСтр); Если ТаблЧ.Кво = 0 тогда ТаблЧ.УдалитьСтроку(); КСтр = ТаблЧ.КоличествоСтрок(); Иначе КСтр = КСтр-1; КонецЕсли; КонецЦикла; ЗагрузитьТабличнуюЧасть(ТаблЧ); Если КоличествоСтрок() = 0 тогда глКомментарий("При начальном заполнении на основании "+ДокументОснование+", табличная часть пустая.",0); КонецЕсли; КонецЕсли; КонецЕсли; Если ВидТорговли = Перечисление.ВидыТорговли.Нал Тогда Касса = глНайтиКассу(Фирма,Валюта); КонецЕсли; КонецПроцедуры // =============================== Процедура ВыборОснования() // Процедура по кнопке редактирования основания в докумнете ОткрытьФормуМодально("Обработка.ОснованиеДокумента", Контекст); ПриВводеНаОсновании(ДокументОснование); // Могли изменить Контрагента ИзмДоговор(); глУстДостСумм(Контекст); КонецПроцедуры // =============================== Процедура Печать() Таб = СоздатьОбъект("Таблица"); ПечФорма = "Таблицау"; Язык = "у"; Таб.ИсходнаяТаблица(ПечФорма); глУстПропись(Валюта,Язык); ПечОснование = Основание; фЕстьСкидка = 0; Если Итог("Скидка")<>0 Тогда фЕстьСкидка = 1; КонецЕсли; РеквЦена = "ЦенаБезНДС"; РеквСуммаСоСкидкой = "СуммаБезНДС"; РеквСумма = "СуммаСНДС"; Таб.ВывестиСекцию("Шапка"); ИтСуммаБезСкидки = 0; ИтСкидка = 0; ИтСуммаСоСкидкой = 0; ИтСумма = 0; Ном = 0;ВСоставе = 0; ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл ИтСуммаБезСкидки = ИтСуммаБезСкидки + СуммаБезСкидки; ИтСкидка = ИтСкидка + Скидка; ИтСуммаСоСкидкой = ИтСуммаСоСкидкой + ПолучитьАтрибут(РеквСуммаСоСкидкой); ИтСумма = ИтСумма + ПолучитьАтрибут(РеквСумма); ПечЦена = глФРМТ(ПолучитьАтрибут(РеквЦена),Валюта,0); ПечСуммаБезСкидки = глФРМТ(СуммаБезСкидки,Валюта,0); Ном = Ном + 1; Таб.ВывестиСекцию("Строка"); КонецЦикла; ПечИтСуммаБезСкидки = глФРМТ(ИтСуммаБезСкидки,Валюта,0); ИтСуммаСоСкидкой = Окр(ИтСуммаСоСкидкой,2); ПечИтСуммаСоСкидкой = глФРМТ(ИтСуммаСоСкидкой,Валюта,0); НДС = ИтСумма - (ИтСуммаБезСкидки - ИтСкидка); НДС = Окр(НДС,2); ПечНДС = глФРМТ(НДС,Гривня,1); ЗаказИнфо = глСтрокаОснование(Контекст,Договор,Основание); ИтСумма = Окр(ИтСумма,2); ПечИтСумма = глФРМТ(ИтСумма,Валюта,0); ПечСНДСПропись = глСуммаПрописью(ИтСумма,Валюта); ПечНДСПропись = " "+глФРМТ(НДС,Валюта,1); НДССтр = "0.00 грн"; Если ВидНДС.Ставка.Получить(ДатаДок) <> 0 Тогда НДССтр = "20% - " + ПечНДС; КонецЕсли; Таб.ВывестиСекцию("Дно"); Таб.ПараметрыСтраницы(1,100,,10,7,10,0,0,0,,,); Таб.КоличествоЭкземпляров(2); Таб.ТолькоПросмотр(0); Таб.Опции(0,0,,); Таб.Показать("ПЕЧАТЬ: Расходная накладная",""); КонецПроцедуры // =============================== // Предопределенные процедуры // =============================== Процедура ПриВыбореЗакладки(Номер,Значение) Форма.ИспользоватьСлой("Совместный,"+Значение,2); УстДоступность(); УстДоступностьКнопок(); КонецПроцедуры Процедура УстСклад() НовыйСклад = СоздатьОбъект("Справочник.МестаХранения"); НовыйСклад.НайтиПоНаименованию("Наружная реклама",0,1); Склад = НовыйСклад.ТекущийЭлемент(); КонецПроцедуры Процедура ВводНового(Скопирован) //Предопределенная процедура глПроверкаДатыДок(Контекст,"Ввод нового","Т"); Если Скопирован=1 Тогда //копирование документа глУстановитьНомер(Контекст); Возврат; КонецЕсли; глЗаполнитьШапку(Контекст); ДатаДок=РабочаяДата(); Контрагент=глВосстановитьЗначение(,"ОсновнойПокупатель"); ИзмКонтрагент(); ВидОперации = 0; Если ПустоеЗначение(Контрагент) = 1 Тогда Контрагент=глВосстановитьЗначение(,"ОсновнойПокупатель"); КонецЕсли; Если ПустоеЗначение(Контрагент) = 0 Тогда КатегорияЦен = Контрагент.КатегорияЦен; КонецЕсли; Валюта=глВосстановитьЗначение(,"ОсновнаяВалютаПродажи"); Дата_Курса = ДатаДок; Если ПустоеЗначение(Валюта) = 1 Тогда Валюта = Гривня; КонецЕсли; Курс=глКурсДляВалюты(Валюта,Дата_Курса); Если ПустоеЗначение(КатегорияЦен)=1 Тогда КатегорияЦен = глВосстановитьЗначение(,"ОсновнаяКатегорияЦен"); КонецЕсли; ИзмДоговор(); Если ПустоеЗначение(ВидТорговли)=1 Тогда ВидТорговли = глВосстановитьЗначение(,"ОсновнойВидТорговли"); КонецЕсли; ВыбранВидТорговли(); Если ВидТорговли = Перечисление.ВидыТорговли.Нал Тогда Касса = глНайтиКассу(Фирма,Валюта); КонецЕсли; Отпустил = глФИО(Фирма.Руководитель.Получить(ДатаДок),1); Менеджер = Отпустил; УстСклад(); КонецПроцедуры // =============================== Процедура ВводНаОсновании(ДокОснование) //Предопределенная процедура Перем ВидОсн; ВидОсн = ДокОснование.Вид(); ВидОперации = 0; Если (ВидОсн="Счет") Тогда Примечание = ДокОснование.Примечание; Если ДокОснование.ЧтоПродаем = Перечисление.ЧтоПродаем.НеоборотныеАктивы Тогда Предупреждение("Для реализации основных средств используйте документ ЛиквидацияНеоборАктивов"); СтатусВозврата(0); Возврат; ИначеЕсли ДокОснование.ЧтоПродаем = Перечисление.ЧтоПродаем.ТМЦ Тогда Предупреждение("Для реализации запасов используйте документ Расх. накл."); СтатусВозврата(0); Возврат; КонецЕсли; КонецЕсли; Автор = глПользователь; Отпустил = Автор.ФизЛицо; Менеджер = Отпустил; ПриВводеНаОсновании(ДокОснование); Если ПустоеЗначение(КатегорияЦен)=1 Тогда Если ПустоеЗначение(Контрагент)=0 Тогда КатегорияЦен = Контрагент.КатегорияЦен; КонецЕсли; КонецЕсли; Если ПустоеЗначение(КатегорияЦен)=1 Тогда КатегорияЦен = глВосстановитьЗначение(,"ОсновнаяКатегорияЦен"); КонецЕсли; УстСклад(); КонецПроцедуры // =============================== Процедура ПриНачалеРедактированияСтроки() Если ПустоеЗначение(Предпочтение)=1 Тогда Форма.Предпочтение.НазначитьТип("Справочник.Контрагенты"); Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); КонецЕсли; КонецПроцедуры // =============================== Процедура ПриРедактированииНовойСтроки() Форма.Предпочтение.НазначитьТип("Справочник.Контрагенты"); Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); КонецПроцедуры // =============================== Процедура ПриОткрытии() //Предопределенная процедура НачальнаяДатаДокумента = ДатаДок; Если ПустоеЗначение(Форма.Параметр)=0 Тогда Если ТипЗначенияСтр(Форма.Параметр)="Строка" Тогда КонецЕсли; КонецЕсли; глПроверкаДатыДок(Контекст,"Открытие","Т"); глУстановкаРеквизитаТип(Контекст); ВидимостьТипа = Форма.Тип.Видимость(); Форма.ИспользоватьЗакладки(1); Форма.Закладки.ДобавитьЗначение("Основной","Основные"); Форма.Закладки.ДобавитьЗначение("Дополнительно","Дополнительно"); Форма.ИспользоватьСлой("Основной, Совместный",2); глУстВидимостьЦен(Контекст); глУстДостСумм(Контекст); СтараяДата = ДатаДок; ПересчетРегистров(); УстДоступностьКнопок(); Если ПустоеЗначение(ВидТорговли)=1 Тогда ВидТорговли = глВосстановитьЗначение(,"ОсновнойВидТорговли"); ВыбранВидТорговли(); КонецЕсли; КонецПроцедуры //При открытии // =============================== Процедура ВыборКассы() спКассы = глЗаполнитьСпКассы(Фирма,Валюта); спКассы.ВыбратьЗначение(Касса,,,,2); КонецПроцедуры // =============================== Процедура ИзмСклад() КонецПроцедуры // =============================== Процедура ВыборПредпочтения() спОтбор = СоздатьОбъект("СписокЗначений"); спСтатусы=СоздатьОбъект("СписокЗначений"); Если Товар.ВидТМЦ = Перечисление.ВидыТМЦ.Тара Тогда спСтатусы.ДобавитьЗначение(Тара); ИначеЕсли Товар.ВидТМЦ = Перечисление.ВидыТМЦ.Услуга Тогда Возврат; Иначе спСтатусы.ДобавитьЗначение(Купленный); КонецЕсли; спОтбор.Установить("Статус",спСтатусы); Если Константа.ПартионныйУчетПоСкладам = Да Тогда спОтбор.Установить("МестоХранения",Склад); КонецЕсли; спОтбор.Установить("Контекст",Контекст); ОткрытьФормуМодально("Справочник.Контрагенты.ВыборПредпочтения", спОтбор); КонецПроцедуры // =============================== Процедура ПриНачалеВыбораЗначения(Рекв,Флаг) Флаг=0; Если Рекв="Склад" Тогда СтарСклад = Склад; Флаг=1; ИначеЕсли Рекв="Предпочтение" Тогда ВыборПредпочтения(); ИначеЕсли Рекв="Касса" Тогда ВыборКассы(); ИначеЕсли Рекв="ВидНДС" Тогда глВыбратьНДС(Контекст,Рекв); ИзмВидНДС(); Иначе Флаг=1; КонецЕсли; КонецПроцедуры // =============================== Процедура ОбработкаПодбора(Выб) //Предопределенная процедура глПриОбработкеПодбора(Выб,Контекст); КонецПроцедуры //Обработка подбора // =============================== Процедура ПриЗаписи() //Предопределенная процедура глПроверкаДатыДок(Контекст,"Запись","Т"); Автор = глПользователь; Если глКонтрольДатыДокумента(Контекст, НачальнаяДатаДокумента)=1 Тогда СтатусВозврата(0); КонецЕсли; КонецПроцедуры // =============================== // Инициализируем список действий по кнопке "Действия" СписокДействий = глПолучитьСписокДействий(" |ТоварныйСостав, |ОбновлениеЦен, |СтруктураПодчиненности, |ДвиженияДокумента, |ВводНаОсновании, |ОткрытьВЖурнале, |Подчиненные"); ЗаполнитьСпВидТорговли(); ВыбранВидТорговли(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 13:30 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
Надо бы глянуть ещё таблицу. Но можешь попробовать сделать так: Замени процедуру Печать() на следующую: // =============================== Процедура Печать() Таб = СоздатьОбъект("Таблица"); ПечФорма = "Таблицау"; Язык = "у"; Таб.ИсходнаяТаблица(ПечФорма); глУстПропись(Валюта,Язык); ПечОснование = Основание; фЕстьСкидка = 0; Если Итог("Скидка")<>0 Тогда фЕстьСкидка = 1; КонецЕсли; РеквЦена = "ЦенаБезНДС"; РеквСуммаСоСкидкой = "СуммаБезНДС"; РеквСумма = "СуммаСНДС"; Таб.ВывестиСекцию("Шапка"); ИтСуммаБезСкидки = 0; ИтСкидка = 0; ИтСуммаСоСкидкой = 0; ИтСумма = 0; Ном = 0;ВСоставе = 0; ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл ИтСуммаБезСкидки = ИтСуммаБезСкидки + СуммаБезСкидки; ИтСкидка = ИтСкидка + Скидка; ИтСуммаСоСкидкой = ИтСуммаСоСкидкой + ПолучитьАтрибут(РеквСуммаСоСкидкой); ИтСумма = ИтСумма + ПолучитьАтрибут(РеквСумма); ПечЦена = глФРМТ(ПолучитьАтрибут(РеквЦена),Валюта,0); ПечСуммаБезСкидки = глФРМТ(СуммаБезСкидки,Валюта,0); Ном = Ном + 1; Таб.ВывестиСекцию("Строка"); КонецЦикла; ПечИтСуммаБезСкидки = глФРМТ(ИтСуммаБезСкидки,Валюта,0); ИтСуммаСоСкидкой = Окр(ИтСуммаСоСкидкой,2); ПечИтСуммаСоСкидкой = глФРМТ(ИтСуммаСоСкидкой,Валюта,0); НДС = ИтСумма - (ИтСуммаБезСкидки - ИтСкидка); НДС = Окр(НДС,2); ПечНДС = глФРМТ(НДС,Гривня,1); ЗаказИнфо = глСтрокаОснование(Контекст,Договор,Основание); ИтСумма = Окр(ИтСумма,2); ПечИтСумма = глФРМТ(ИтСумма,Валюта,0); ПечСНДСПропись = глСуммаПрописью(ИтСумма,Валюта); ПечНДСПропись = " "+глФРМТ(НДС,Валюта,1); НДССтр = "0.00 грн"; Если ВидНДС.Ставка.Получить(ДатаДок) <> 0 Тогда НДССтр = "20% - " + ПечНДС; КонецЕсли; Таб.ВывестиСекцию("Дно"); //Начало вставки ---> //Поторяем печать на этом же листе КоличествоСтрокДокументаКоторыеПозволяютПечататьДваЭкзепляраНаСтраницу=15; //Подставь свое значение Если КоличествоСтрок()<КоличествоСтрокДокументаКоторыеПозволяютПечататьДваЭкзепляраНаСтраницу Тогда ПечОснование = Основание; фЕстьСкидка = 0; Если Итог("Скидка")<>0 Тогда фЕстьСкидка = 1; КонецЕсли; РеквЦена = "ЦенаБезНДС"; РеквСуммаСоСкидкой = "СуммаБезНДС"; РеквСумма = "СуммаСНДС"; Таб.ВывестиСекцию("Шапка"); ИтСуммаБезСкидки = 0; ИтСкидка = 0; ИтСуммаСоСкидкой = 0; ИтСумма = 0; Ном = 0;ВСоставе = 0; ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл ИтСуммаБезСкидки = ИтСуммаБезСкидки + СуммаБезСкидки; ИтСкидка = ИтСкидка + Скидка; ИтСуммаСоСкидкой = ИтСуммаСоСкидкой + ПолучитьАтрибут(РеквСуммаСоСкидкой); ИтСумма = ИтСумма + ПолучитьАтрибут(РеквСумма); ПечЦена = глФРМТ(ПолучитьАтрибут(РеквЦена),Валюта,0); ПечСуммаБезСкидки = глФРМТ(СуммаБезСкидки,Валюта,0); Ном = Ном + 1; Таб.ВывестиСекцию("Строка"); КонецЦикла; ПечИтСуммаБезСкидки = глФРМТ(ИтСуммаБезСкидки,Валюта,0); ИтСуммаСоСкидкой = Окр(ИтСуммаСоСкидкой,2); ПечИтСуммаСоСкидкой = глФРМТ(ИтСуммаСоСкидкой,Валюта,0); НДС = ИтСумма - (ИтСуммаБезСкидки - ИтСкидка); НДС = Окр(НДС,2); ПечНДС = глФРМТ(НДС,Гривня,1); ЗаказИнфо = глСтрокаОснование(Контекст,Договор,Основание); ИтСумма = Окр(ИтСумма,2); ПечИтСумма = глФРМТ(ИтСумма,Валюта,0); ПечСНДСПропись = глСуммаПрописью(ИтСумма,Валюта); ПечНДСПропись = " "+глФРМТ(НДС,Валюта,1); НДССтр = "0.00 грн"; Если ВидНДС.Ставка.Получить(ДатаДок) <> 0 Тогда НДССтр = "20% - " + ПечНДС; КонецЕсли; Таб.ВывестиСекцию("Дно"); КонецЕсли; Таб.ПараметрыСтраницы(1,100,,10,7,10,0,0,0,,,); Таб.КоличествоЭкземпляров(2); //<--- Конец вставки Таб.ТолькоПросмотр(0); Таб.Опции(0,0,,); Таб.Показать("ПЕЧАТЬ: Расходная накладная",""); КонецПроцедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 04:15 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
VoditelKobyly, Сделал так как вы посоветовали. Распечатал. Получилось 12 листов. 4 пустые, 4 полупустые. И 4 акта, на разных листах - по полтора на каждом листе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 10:09 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
А как можна показать вам табличную часть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 10:10 |
|
||
|
1c 7.7 Акты
|
|||
|---|---|---|---|
|
#18+
Чтобы не засорять эфир, пишите в почту AndyCPS@list.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 10:22 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=35847567&tid=1524017]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
114ms |
get topic data: |
11ms |
get forum data: |
6ms |
get page messages: |
156ms |
get tp. blocked users: |
2ms |
| others: | 288ms |
| total: | 610ms |

| 0 / 0 |
