|
Запрос в печатной форме | ☑ | ||
---|---|---|---|---|
0
Александр056
05.08.14
✎
06:32
|
Делаю внешнюю печатную форму, ссылканаобъект и прочее, все поправил но вот загвоздка, при выполнении обработки(внешняя печ форма) происходит ошибка деление на 0, в запросе:
Запрос = Новый Запрос; Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект); Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка); Запрос.УстановитьПараметр("Курс", Параметры.Курс); Запрос.УстановитьПараметр("Кратность", Параметры.Кратность); Запрос.УстановитьПараметр("ВидСкладаНТТ", Перечисления.ВидыСкладов.НТТ); Запрос.УстановитьПараметр("БезФактическихДанных", БезФактическихДанных); Запрос.Текст = "ВЫБРАТЬ | Номер КАК НомерДокумента, | Дата КАК ДатаДокумента, | Дата КАК ДатаСнятияОстатков, | Организация, | Склад.Представление КАК ПредставлениеСклада, | Товары.( | НомерСтроки КАК Номер, | Номенклатура, | Номенклатура.НаименованиеПолное КАК ТоварНаименование, | Номенклатура." + ТоварКод + " КАК ТоварКод, | ЕдиницаИзмерения.Представление КАК ЕдиницаИзмеренияНаименование, | ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код КАК ЕдиницаИзмеренияКодПоОКЕИ, | ВЫБОР | КОГДА &БезФактическихДанных ТОГДА 0 | ИНАЧЕ Количество | КОНЕЦ КАК ФактКоличество, | КоличествоУчет КАК БухКоличество, | ВЫБОР | КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА ЦенаВРознице | ИНАЧЕ Цена * &Курс / &Кратность | КОНЕЦ КАК Цена, | ВЫБОР | КОГДА &БезФактическихДанных ТОГДА 0 | ИНАЧЕ ВЫБОР КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Количество * ЦенаВРознице ИНАЧЕ Сумма * &Курс / &Кратность КОНЕЦ | КОНЕЦ КАК ФактСумма, | ВЫБОР | КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА КоличествоУчет *ЦенаВРознице | ИНАЧЕ СуммаУчет * &Курс / &Кратность | КОНЕЦ КАК БухСумма, | ХарактеристикаНоменклатуры КАК Характеристика, | СерияНоменклатуры КАК Серия | ) |ИЗ | Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе | |ГДЕ | ИнвентаризацияТоваровНаСкладе.Ссылка = &ссылка |УПОРЯДОЧИТЬ ПО | Товары.НомерСтроки"; в строке установки параметров прописано курс... параметры.курс,тоже самое с кратностью, именно там поселились 0 значения, что значит ПАРАМЕТР.курс, как поправить? |
|||
1
Cube
05.08.14
✎
06:45
|
(0) Что за "Параметры"? Откуда они взялись - там и копай.
|
|||
2
Wobland
05.08.14
✎
06:51
|
Параметр.Курс=80
|
|||
3
Александр056
05.08.14
✎
06:57
|
(1) вот и меня интересует откуда взялись параметры...
вот полностью код обработки: Перем мВалютаРегламентированногоУчета Экспорт; Перем мВалютаУпрУчета Экспорт; Функция Печать(БезФактическихДанных = Ложь) Экспорт; ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда ТоварКод = "Артикул"; Иначе ТоварКод = "Код"; КонецЕсли; Если СсылкаНаОбъект.Склад.ВидСклада = Перечисления.ВидыСкладов.НТТ Тогда ВалютаПересчета = мВалютаРегламентированногоУчета; Иначе ВалютаПересчета = мВалютаУпрУчета; КонецЕсли; ВалютаПечати = мВалютаРегламентированногоУчета; Параметры = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаПересчета, СсылкаНаОбъект.Дата); Запрос = Новый Запрос; Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект); Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка); Запрос.УстановитьПараметр("Курс", Параметры.Курс); Запрос.УстановитьПараметр("Кратность", Параметры.Кратность); Запрос.УстановитьПараметр("ВидСкладаНТТ", Перечисления.ВидыСкладов.НТТ); Запрос.УстановитьПараметр("БезФактическихДанных", БезФактическихДанных); Запрос.Текст = "ВЫБРАТЬ | Номер КАК НомерДокумента, | Дата КАК ДатаДокумента, | Дата КАК ДатаСнятияОстатков, | Организация, | Склад.Представление КАК ПредставлениеСклада, | Товары.( | НомерСтроки КАК Номер, | Номенклатура, | Номенклатура.НаименованиеПолное КАК ТоварНаименование, | Номенклатура." + ТоварКод + " КАК ТоварКод, | ЕдиницаИзмерения.Представление КАК ЕдиницаИзмеренияНаименование, | ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код КАК ЕдиницаИзмеренияКодПоОКЕИ, | ВЫБОР | КОГДА &БезФактическихДанных ТОГДА 0 | ИНАЧЕ Количество | КОНЕЦ КАК ФактКоличество, | КоличествоУчет КАК БухКоличество, | ВЫБОР | КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА ЦенаВРознице | ИНАЧЕ Цена * &Курс / &Кратность | КОНЕЦ КАК Цена, | ВЫБОР | КОГДА &БезФактическихДанных ТОГДА 0 | ИНАЧЕ ВЫБОР КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Количество * ЦенаВРознице ИНАЧЕ Сумма * &Курс / &Кратность КОНЕЦ | КОНЕЦ КАК ФактСумма, | ВЫБОР | КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА КоличествоУчет *ЦенаВРознице | ИНАЧЕ СуммаУчет * &Курс / &Кратность | КОНЕЦ КАК БухСумма, | ХарактеристикаНоменклатуры КАК Характеристика, | СерияНоменклатуры КАК Серия | ) |ИЗ | Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе | |ГДЕ | ИнвентаризацияТоваровНаСкладе.Ссылка = &ссылка |УПОРЯДОЧИТЬ ПО | Товары.НомерСтроки"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); ВыборкаСтрокТовары = Шапка.Товары.Выбрать(); ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ИнвентаризацияТоваровНаСкладе_ИНВ3"; Макет = ПолучитьОбщийМакет("ИНВ3"); // Выводим шапку накладной ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ОбластьМакета.Параметры.Заполнить(Шапка); СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента); ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации); ОбластьМакета.Параметры.ОрганизацияПоОКПО = СведенияОбОрганизации.КодПоОКПО; ОбластьМакета.Параметры.ДатаДокумента = Шапка.ДатаДокумента; ОбластьМакета.Параметры.ДатаСнятияОстатков = Шапка.ДатаСнятияОстатков; ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(ЭтотОбъект); ТабДокумент.Вывести(ОбластьМакета); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); СтрокНаСтранице = 19; СтрокШапки = 5; СтрокПодвала = 5; НомерСтраницы = 2; Ном = 0; ИтогФактКоличество = 0; ИтогФактСумма = 0; ИтогБухКоличество = 0; ИтогБухСумма = 0; КолвоСтрокПоСтранице = 0; КолвоПостранице = 0; СуммаЛиста = 0; ИтогоКолво = 0; ИтогоСумма = 0; // Выводим заголовок таблицы ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы"); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ЗаголовокТаблицы); КоличествоСтрок = ВыборкаСтрокТовары.Количество(); Если КоличествоСтрок = 1 Тогда ПереноситьПоследнююСтроку = 0; Иначе ЦелыхСтраницСПодвалом = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице); ЦелыхСтраницБезПодвала = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице); ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала; КонецЕсли; // Выводим многострочную часть докмента ВыборкаСтрокТовары = Шапка.Товары.Выбрать(); ОбластьМакета = Макет.ПолучитьОбласть("Строка"); Пока ВыборкаСтрокТовары.Следующий() Цикл Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; Ном = Ном + 1; //Начинаем новую страницу, если предыдущая строка была последней на странице //или пора переносить последнюю строку на последнюю страницу с подвалом. ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице; Если (ЦелаяСтраница = Цел(ЦелаяСтраница)) или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ПодвалСтраницы"); ОбластьИтоговПоСтранице.Параметры.ИтогоФактКоличество = ИтогФактКоличество; ОбластьИтоговПоСтранице.Параметры.ИтогоФактСумма = ИтогФактСумма; ОбластьИтоговПоСтранице.Параметры.ИтогоБухКоличество = ИтогБухКоличество; ОбластьИтоговПоСтранице.Параметры.ИтогоБухСумма = ИтогБухСумма; ОбластьИтоговПоСтранице.Параметры.КоличествоПорядковыхНомеровНаСтраницеПрописью = ЧислоПрописью(КолвоСтрокПоСтранице, ,",,,,,,,,0"); Если НЕ БезФактическихДанных Тогда ОбластьИтоговПоСтранице.Параметры.ОбщееКоличествоЕдиницФактическиНаСтраницеПрописью = ФормированиеПечатныхФорм.КоличествоПрописью(КолвоПостранице); ОбластьИтоговПоСтранице.Параметры.СуммаФактическиНаСтраницеПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаЛиста, ВалютаПечати); КонецЕсли; ТабДокумент.Вывести(ОбластьИтоговПоСтранице); НомерСтраницы = НомерСтраницы + 1; ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ЗаголовокТаблицы); ИтогФактКоличество = 0; ИтогФактСумма = 0; ИтогБухКоличество = 0; ИтогБухСумма = 0; КолвоСтрокПоСтранице = 0; КолвоПостранице = 0; СуммаЛиста = 0; КонецЕсли; ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары); ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрокТовары.ТоварНаименование + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары); ОбластьМакета.Параметры.Номер = Ном; ТабДокумент.Вывести(ОбластьМакета); ИтогФактКоличество = ИтогФактКоличество + ВыборкаСтрокТовары.ФактКоличество; ИтогФактСумма = ИтогФактСумма + ВыборкаСтрокТовары.ФактСумма; ИтогБухКоличество = ИтогБухКоличество + ВыборкаСтрокТовары.БухКоличество; ИтогБухСумма = ИтогБухСумма + ВыборкаСтрокТовары.БухСумма; ИтогоКолво = ИтогоКолво + ВыборкаСтрокТовары.ФактКоличество; ИтогоСумма = ИтогоСумма + ВыборкаСтрокТовары.ФактСумма; КолвоСтрокПоСтранице = КолвоСтрокПоСтранице + 1; КолвоПостранице = КолвоПостранице + ВыборкаСтрокТовары.ФактКоличество; СуммаЛиста = СуммаЛиста + ВыборкаСтрокТовары.ФактСумма; КонецЦикла; // Выводим итоги по последней странице ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ПодвалСтраницы"); ОбластьИтоговПоСтранице.Параметры.ИтогоФактКоличество = ИтогФактКоличество; ОбластьИтоговПоСтранице.Параметры.ИтогоФактСумма = ИтогФактСумма; ОбластьИтоговПоСтранице.Параметры.ИтогоБухКоличество = ИтогБухКоличество; ОбластьИтоговПоСтранице.Параметры.ИтогоБухСумма = ИтогБухСумма; ОбластьИтоговПоСтранице.Параметры.КоличествоПорядковыхНомеровНаСтраницеПрописью = ЧислоПрописью(КолвоСтрокПоСтранице, ,",,,,,,,,0"); Если НЕ БезФактическихДанных Тогда ОбластьИтоговПоСтранице.Параметры.ОбщееКоличествоЕдиницФактическиНаСтраницеПрописью = ФормированиеПечатныхФорм.КоличествоПрописью(КолвоПостранице); ОбластьИтоговПоСтранице.Параметры.СуммаФактическиНаСтраницеПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаЛиста, ВалютаПечати); КонецЕсли; ТабДокумент.Вывести(ОбластьИтоговПоСтранице); // Выводим подвал документа ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ОбластьМакета = Макет.ПолучитьОбласть("ПодвалОписи"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.НачальныйНомерПоПорядку = 1; ОбластьМакета.Параметры.НомерКонца = ВыборкаСтрокТовары.Количество(); ОбластьМакета.Параметры.КоличествоПорядковыхНомеровНаСтраницеПрописью = ЧислоПрописью(ВыборкаСтрокТовары.Количество(), ,",,,,,,,,0"); Если НЕ БезФактическихДанных Тогда ОбластьМакета.Параметры.ОбщееКоличествоЕдиницФактическиНаСтраницеПрописью = ФормированиеПечатныхФорм.КоличествоПрописью(ИтогоКолво); ОбластьМакета.Параметры.СуммаФактическиНаСтраницеПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(ИтогоСумма, ВалютаПечати); КонецЕсли; ТабДокумент.Вывести(ОбластьМакета); // Зададим параметры макета ТабДокумент.ПолеСверху = 0; ТабДокумент.ПолеСлева = 0; ТабДокумент.ПолеСнизу = 0; ТабДокумент.ПолеСправа = 0; ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; Возврат ТабДокумент; КонецФункции // ПечатьИНВ3() мВалютаРегламентированногоУчета = глЗначениеПеременной("ВалютаРегламентированногоУчета"); мВалютаУпрУчета = глЗначениеПеременной("ВалютаУправленческогоУчета"); |
|||
4
Cube
05.08.14
✎
06:58
|
(3) "Параметры = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаПересчета, СсылкаНаОбъект.Дата);"
Действительно... Совсем не понятно, откуда ж они взялись-то... |
|||
5
Александр056
05.08.14
✎
07:02
|
(4) ой...)
|
|||
6
ДенисЧ
05.08.14
✎
07:03
|
А я вот так и не понял, что такое Параметры и откуда они берутся....
|
|||
7
Александр056
05.08.14
✎
07:14
|
(6) МодульВалютногоУчета --- вот это вот что такое..)
|
|||
8
Александр056
05.08.14
✎
07:17
|
да и нафиг она вообще нужна эта валюта, ток рубли используем...
|
|||
9
Godofsin
05.08.14
✎
07:26
|
прально! валютп нахер не нужна!
|
|||
10
Александр056
05.08.14
✎
07:42
|
ребят помогите разрулиться суть в общем создать внешнюю печатную форму инв 3, весь код обработки привел, подскажите ошибки, как допилить
|
|||
11
Godofsin
05.08.14
✎
07:44
|
Запрос.УстановитьПараметр("Кратность", 1);
|
|||
12
Godofsin
05.08.14
✎
07:44
|
Запрос.УстановитьПараметр("Курс", 1);
|
|||
13
Godofsin
05.08.14
✎
07:45
|
и будь что будет! (с)
|
|||
14
Cube
05.08.14
✎
07:45
|
(10) После строки
Параметры = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаПересчета, СсылкаНаОбъект.Дата); Добавь код: Сообщить("Валюта: """ + ВалютаПересчета + """"); Сообщить("Дата: " + СсылкаНаОбъект.Дата); Ну а результат покажи нам. |
|||
15
Cube
05.08.14
✎
07:46
|
(14) И проверь, есть ли для этой валюты записи в РС "КурсыВалют".
|
|||
16
Godofsin
05.08.14
✎
07:47
|
(15) По-моему, ты его сильно нагрузил....
|
|||
17
Cube
05.08.14
✎
07:48
|
(16) Нечего филонить! :)
|
|||
18
Александр056
05.08.14
✎
07:49
|
щас после планерки попробую, отпишусь, спасибо)
|
|||
19
vqwy
05.08.14
✎
07:50
|
Приезжай в Орск, научим...
|
|||
20
Александр056
05.08.14
✎
07:55
|
(19) был 2 раза не понравился город....
|
|||
21
Godofsin
05.08.14
✎
07:56
|
(20) Орки проходу не дают? =)
|
|||
22
Александр056
05.08.14
✎
07:58
|
(21) на турнире было весело пару раз, страшные ток с виду, все фигня, все планерка)
|
|||
23
Cube
05.08.14
✎
08:00
|
(19) Продолжите фразу:
Москва: москвич, москвичка. Орск: ???, ??? =)) |
|||
24
Wobland
05.08.14
✎
08:04
|
(23) Этнохороним
орчанин, орчанка, орчане |
|||
25
Александр056
05.08.14
✎
08:31
|
(14)
Валюта: "руб" Дата: 20.05.2014 0:00:00 дату показал выбранного документа |
|||
26
Cube
05.08.14
✎
08:42
|
(25) Значит (15).
И проверь, сколько у тебя валют с наименованием "руб" в справочнике "Валюты"... |
|||
27
Александр056
05.08.14
✎
09:00
|
поправил на деление на 0 не ругается, теперь новая песня
{ОбщийМодуль.ОбщегоНазначения.Модуль(8196)}: Поле объекта не обнаружено (Номер) Номер = СокрЛП(Документ.Номер); |
|||
28
ДенисЧ
05.08.14
✎
09:01
|
(27) Ну вот и смотри, что ты передаешь в параметр Документ
|
|||
29
Cube
05.08.14
✎
09:02
|
(27) Ну дык у твоей обработки нет номера, епта))
строку ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(ЭтотОбъект); Замени на ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(СсылкаНаОбъект); |
|||
30
Александр056
05.08.14
✎
09:05
|
да епт, надо больше спать, все в глазах плывет, спасибО) урааа епть работает) спасибо ребят, всем респект)!
|
|||
31
Александр056
05.08.14
✎
09:10
|
кому надо скинуть внешнюю печатную форму(не измененную) ИНВ-3 для документа инвентаризация товаров на складе пишите, поделюсь)
|
|||
32
Cube
05.08.14
✎
09:13
|
(31) Спасибо, обойдемся =)))
|
|||
33
Godofsin
05.08.14
✎
09:18
|
(31) Ты это... не рассбрасывался бы своим интеллектуальным трудом... продай кому-нибудь )))))
|
|||
34
Александр056
05.08.14
✎
09:23
|
(33) ну вопрос мелкий, просто я не опытный)) вы мне за так подсказывали че я буду продавать, тут не только мои "интеллектуальный труд"))))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |