![]() |
|
Вывод док-та: ошибка | ☑ | ||
---|---|---|---|---|
0
tg30000
27.10.11
✎
10:50
|
Процедура Печать(Элемент)
ТабДок = Новый ТабличныйДокумент; Макет = Документы.а01ИНВ3_пробная.ПолучитьМакет("Печать"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | а01ИНВ3_пробная.Номер, | а01ИНВ3_пробная.Дата, | а01ИНВ3_пробная.ТабличнаяЧасть1.( | НомерСтроки, | Счет, | Наименование | ) |ИЗ | Документ.а01ИНВ3_пробная КАК а01ИНВ3_пробная"; Шапка=Запрос.Выполнить().Выбрать(); Шапка.Следующий(); ВыборкаСтрокТовары =Шапка.ТабличнаяЧасть1.Выбрать(); // Шапка Шапка = Макет.ПолучитьОбласть("Шапка"); Шапка.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Шапка); ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); СтрокНаСтранице =12; СтрокШапки = 5; СтрокПодвала = 5; НомерСтраницы = 2; Ном =0; //-- //-- КолвоСтрокПоСтранице = 0; КолвоПостранице = 0; СуммаЛиста =0; ИтогоКолво=0; ИтогоСумма =0; //ВыводимЗаголовок ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы"); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДок.Вывести(ЗаголовокТаблицы); //-------------------------------------------------------------------------------------- КоличествоСтрок = ВыборкаСтрокТовары.Количество(); Если КоличествоСтрок = 1 Тогда ПереноситьПоследнююСтроку = 0; Иначе ЦелыхСтраницСПодвалом = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице); ЦелыхСтраницБезПодвала = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице); ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала; КонецЕсли; // Выводим многострочную часть докмента ВыборкаСтрокТовары = Шапка.ТабличнаяЧасть1.Выбрать(); ОбластьМакета = Макет.ПолучитьОбласть("Строка"); выдает ошибку... {Документ.а01ИНВ3_пробная.Форма.ФормаДокумента.Форма(63)}: Поле объекта не обнаружено (ТабличнаяЧасть1) ВыборкаСтрокТовары = Шапка.ТабличнаяЧасть1.Выбрать(); |
|||
1
Шапокляк
27.10.11
✎
10:59
|
Жуть какая... Делайте запрос сразу к табличной части, а номер и дату берите из ссылки.
|
|||
2
tg30000
27.10.11
✎
11:01
|
сделал на основе Док-та из самой конфигурации 1с:КА.
|
|||
3
tg30000
27.10.11
✎
11:02
|
ошибка в чем?
|
|||
4
DrShad
27.10.11
✎
11:07
|
в том что нет ТабличнаяЧасть1
|
|||
5
tg30000
27.10.11
✎
11:08
|
(4) исходя из текста ошибки я это понял , не соображу что у меня не так..
|
|||
6
DrShad
27.10.11
✎
11:11
|
у тебя в выборке нет ТабличнаяЧасть1 неужели не ясно
|
|||
7
hhhh
27.10.11
✎
11:14
|
(5) не парься. Сделай по-нормальному
ВЫБРАТЬ | а01ИНВ3_пробная.Ссылка.Номер КАК Номер, | а01ИНВ3_пробная.Ссылка.Дата КАК Дата, | а01ИНВ3_пробная.НомерСтроки, | а01ИНВ3_пробная.Счет, | а01ИНВ3_пробная.Наименование |ИЗ | Документ.а01ИНВ3_пробная.табличнаячасть1 КАК а01ИНВ3_пробная |
|||
8
tg30000
27.10.11
✎
11:30
|
(7)
сделал ,но что-то не выводит строку ... Процедура Печать(Элемент) ТабДок = Новый ТабличныйДокумент; Макет = Документы.а01ИНВ3_пробная.ПолучитьМакет("Печать"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | а01ИНВ3_пробная.Ссылка.Номер КАК Номер, | а01ИНВ3_пробная.Ссылка.Дата КАК Дата, | а01ИНВ3_пробная.НомерСтроки, | а01ИНВ3_пробная.Счет, | а01ИНВ3_пробная.Наименование |ИЗ | Документ.а01ИНВ3_пробная.Табличнаячасть1 КАК а01ИНВ3_пробная"; Шапка=Запрос.Выполнить().Выбрать(); Шапка.Следующий(); ВыборкаСтрокТовары =Шапка.Выбрать(); // Шапка Шапка = Макет.ПолучитьОбласть("Шапка"); Шапка.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Шапка); ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); СтрокНаСтранице =12; СтрокШапки = 5; СтрокПодвала = 5; НомерСтраницы = 2; Ном =0; //-- //-- КолвоСтрокПоСтранице = 0; КолвоПостранице = 0; СуммаЛиста =0; ИтогоКолво=0; ИтогоСумма =0; //ВыводимЗаголовок ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы"); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДок.Вывести(ЗаголовокТаблицы); //-------------------------------------------------------------------------------------- КоличествоСтрок = ВыборкаСтрокТовары.Количество(); Если КоличествоСтрок = 1 Тогда ПереноситьПоследнююСтроку = 0; Иначе ЦелыхСтраницСПодвалом = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице); ЦелыхСтраницБезПодвала = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице); ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала; КонецЕсли; // Выводим многострочную часть докмента // ВыборкаСтрокТовары = Шапка.Выбрать(); ОбластьМакета = Макет.ПолучитьОбласть("Строка"); Пока ВыборкаСтрокТовары.Следующий() Цикл Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Наименование) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; Ном = Ном + 1; //Начинаем новую страницу, если предыдущая строка была последней на странице //или пора переносить последнюю строку на последнюю страницу с подвалом. ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице; Если (ЦелаяСтраница = Цел(ЦелаяСтраница)) или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ПодвалСтраницы"); //ОбластьИтоговПоСтранице.Параметры.ИтогоФактКоличество = ИтогФактКоличество; // ОбластьИтоговПоСтранице.Параметры.ИтогоФактСумма = ИтогФактСумма; //ОбластьИтоговПоСтранице.Параметры.ИтогоБухКоличество = ИтогБухКоличество; //ОбластьИтоговПоСтранице.Параметры.ИтогоБухСумма = ИтогБухСумма; ОбластьИтоговПоСтранице.Параметры.КоличествоПорядковыхНомеровНаСтраницеПрописью = ЧислоПрописью(КолвоСтрокПоСтранице, ,",,,,,,,,0"); //Если НЕ БезФактическихДанных Тогда // ОбластьИтоговПоСтранице.Параметры.ОбщееКоличествоЕдиницФактическиНаСтраницеПрописью = ФормированиеПечатныхФорм.КоличествоПрописью(КолвоПостранице); // ОбластьИтоговПоСтранице.Параметры.СуммаФактическиНаСтраницеПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаЛиста, ВалютаПечати); //КонецЕсли; ТабДок.Вывести(ОбластьИтоговПоСтранице); НомерСтраницы = НомерСтраницы + 1; ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДок.Вывести(ЗаголовокТаблицы); ИтогФактКоличество = 0; ИтогФактСумма = 0; ИтогБухКоличество = 0; ИтогБухСумма = 0; КолвоСтрокПоСтранице = 0; КолвоПостранице = 0; СуммаЛиста = 0; КонецЕсли; ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары); ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрокТовары.ТоварНаименование + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары); ОбластьМакета.Параметры.Номер = Ном; ТабДок.Вывести(ОбластьМакета); ИтогФактКоличество = ИтогФактКоличество + ВыборкаСтрокТовары.ФактКоличество; ИтогФактСумма = ИтогФактСумма + ВыборкаСтрокТовары.ФактСумма; ИтогБухКоличество = ИтогБухКоличество + ВыборкаСтрокТовары.БухКоличество; ИтогБухСумма = ИтогБухСумма + ВыборкаСтрокТовары.БухСумма; ИтогоКолво = ИтогоКолво + ВыборкаСтрокТовары.ФактКоличество; ИтогоСумма = ИтогоСумма + ВыборкаСтрокТовары.ФактСумма; КолвоСтрокПоСтранице = КолвоСтрокПоСтранице + 1; КолвоПостранице = КолвоПостранице + ВыборкаСтрокТовары.ФактКоличество; СуммаЛиста = СуммаЛиста + ВыборкаСтрокТовары.ФактСумма; КонецЦикла; //-------------------------------------------------------------------------------------- ТабДок.Показать(); |
|||
9
Wobland
27.10.11
✎
11:33
|
Шапка=Запрос.Выполнить().Выбрать();
Шапка.Следующий(); ВыборкаСтрокТовары =Шапка.Выбрать(); ... Пока ВыборкаСтрокТовары.Следующий() Цикл на зачем два раза подряд Следующий() делаешь? больше читать лениво, да и так непонятно, что не так |
|||
10
tg30000
27.10.11
✎
12:05
|
(9) выводится печатная форма но нет строк...
Сейчас отладчиком посмотрю что к чему.. |
|||
11
tg30000
27.10.11
✎
12:08
|
не заполняются..
ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары); |
|||
12
tg30000
27.10.11
✎
12:11
|
не передаются значения, что-то не так сделал...
Процедура Печать(Элемент) ТабДок = Новый ТабличныйДокумент; Макет = Документы.а01ИНВ3_пробная.ПолучитьМакет("Печать"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | а01ИНВ3_пробная.Ссылка.Номер КАК Номер, | а01ИНВ3_пробная.Ссылка.Дата КАК Дата, | а01ИНВ3_пробная.НомерСтроки, | а01ИНВ3_пробная.Счет, | а01ИНВ3_пробная.Наименование |ИЗ | Документ.а01ИНВ3_пробная.Табличнаячасть1 КАК а01ИНВ3_пробная"; Шапка=Запрос.Выполнить().Выбрать(); ВыборкаСтрокТовары =Шапка.Выбрать(); // Шапка Шапка = Макет.ПолучитьОбласть("Шапка"); Шапка.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Шапка); ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); СтрокНаСтранице =12; СтрокШапки = 5; СтрокПодвала = 5; НомерСтраницы = 2; Ном =0; //-- //-- КолвоСтрокПоСтранице = 0; КолвоПостранице = 0; СуммаЛиста =0; ИтогоКолво=0; ИтогоСумма =0; //ВыводимЗаголовок ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы"); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДок.Вывести(ЗаголовокТаблицы); //-------------------------------------------------------------------------------------- КоличествоСтрок = ВыборкаСтрокТовары.Количество(); Если КоличествоСтрок = 1 Тогда ПереноситьПоследнююСтроку = 0; Иначе ЦелыхСтраницСПодвалом = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице); ЦелыхСтраницБезПодвала = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице); ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала; КонецЕсли; // Выводим многострочную часть докмента // ВыборкаСтрокТовары = Шапка.Выбрать(); ОбластьМакета = Макет.ПолучитьОбласть("Строка"); Пока ВыборкаСтрокТовары.Следующий() Цикл Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Наименование) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; Ном = Ном + 1; //Начинаем новую страницу, если предыдущая строка была последней на странице //или пора переносить последнюю строку на последнюю страницу с подвалом. ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице; Если (ЦелаяСтраница = Цел(ЦелаяСтраница)) или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ПодвалСтраницы"); ОбластьИтоговПоСтранице.Параметры.КоличествоПорядковыхНомеровНаСтраницеПрописью = ЧислоПрописью(КолвоСтрокПоСтранице, ,",,,,,,,,0"); ТабДок.Вывести(ОбластьИтоговПоСтранице); НомерСтраницы = НомерСтраницы + 1; ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДок.Вывести(ЗаголовокТаблицы); ИтогФактКоличество = 0; ИтогФактСумма = 0; ИтогБухКоличество = 0; ИтогБухСумма = 0; КолвоСтрокПоСтранице = 0; КолвоПостранице = 0; СуммаЛиста = 0; КонецЕсли; ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары); ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрокТовары.ТоварНаименование + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары); ОбластьМакета.Параметры.Номер = Ном; ТабДок.Вывести(ОбластьМакета); ИтогФактКоличество = ИтогФактКоличество + ВыборкаСтрокТовары.ФактКоличество; ИтогФактСумма = ИтогФактСумма + ВыборкаСтрокТовары.ФактСумма; ИтогБухКоличество = ИтогБухКоличество + ВыборкаСтрокТовары.БухКоличество; ИтогБухСумма = ИтогБухСумма + ВыборкаСтрокТовары.БухСумма; ИтогоКолво = ИтогоКолво + ВыборкаСтрокТовары.ФактКоличество; ИтогоСумма = ИтогоСумма + ВыборкаСтрокТовары.ФактСумма; КолвоСтрокПоСтранице = КолвоСтрокПоСтранице + 1; КолвоПостранице = КолвоПостранице + ВыборкаСтрокТовары.ФактКоличество; СуммаЛиста = СуммаЛиста + ВыборкаСтрокТовары.ФактСумма; КонецЦикла; //-------------------------------------------------------------------------------------- // Выводим итоги по последней странице ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ПодвалСтраницы"); ТабДок.Вывести(ОбластьИтоговПоСтранице); // Выводим подвал документа ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); ОбластьМакета = Макет.ПолучитьОбласть("ПодвалОписи"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.НачальныйНомерПоПорядку = 1; ОбластьМакета.Параметры.НомерКонца = ВыборкаСтрокТовары.Количество(); ТабДок.Вывести(ОбластьМакета); // Зададим параметры макета ТабДок.ПолеСверху = 0; ТабДок.ПолеСлева = 0; ТабДок.ПолеСнизу = 0; ТабДок.ПолеСправа = 0; ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ТабДок.Показать(); КонецПроцедуры |
|||
13
Шапокляк
27.10.11
✎
12:18
|
Шапка=Запрос.Выполнить();
ВыборкаСтрокТовары =Шапка.Выбрать(); а вы все документы этого вида решили напечатать? |
|||
14
Wobland
27.10.11
✎
12:22
|
+(13) телепатирую: ГДЕ а01ИНВ3_пробная.Ссылка=&Ссылка
плюс Запрос.УстановитьПараметр("Ссылка", Ссылка); |
|||
15
Wobland
27.10.11
✎
12:24
|
(11) ну посмотри, с какими значениями ты приходишь на эту строку
|
|||
16
tg30000
27.10.11
✎
12:33
|
(11) ... Ошибка чтения значения
|
|||
17
tg30000
27.10.11
✎
12:33
|
(15) хорошая задача про площадь треугольника!)
|
|||
18
tg30000
27.10.11
✎
12:38
|
(13) мне бы вывести "строку" а "а вы все документы этого вида решили напечатать?" это я не делал сейчас, строку не выводит..запутался в запросе..
|
|||
19
Wobland
27.10.11
✎
12:41
|
(16) ну дык найди, в каком месте в твоей выборке всё теряется. и вообще, попадает ли туда что-нибудь
|
|||
20
tg30000
27.10.11
✎
12:42
|
(19) ок.
|
|||
21
Шапокляк
27.10.11
✎
12:43
|
(18) Не читатель?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | а01ИНВ3_пробная.Ссылка.Номер КАК Номер, | а01ИНВ3_пробная.Ссылка.Дата КАК Дата, | а01ИНВ3_пробная.НомерСтроки, | а01ИНВ3_пробная.Счет, | а01ИНВ3_пробная.Наименование |ИЗ | Документ.а01ИНВ3_пробная.Табличнаячасть1 КАК а01ИНВ3_пробная |ГДЕ а01ИНВ3_пробная.Ссылка=&Ссылка "; Запрос.УстановитьПараметр("Ссылка", Ссылка); Шапка=Запрос.Выполнить(); Шляпа = Макет.ПолучитьОбласть("Шапка"); ВыборкаСтрокТовары =Шапка.Выбрать(); Пока ВыборкаСтрокТовары.Следующий() Цикл Шляпа.Параметры.Заполнить(ВыборкаСтрокТовары); ТабДок.Вывести(Шляпа); |
|||
22
tg30000
27.10.11
✎
12:56
|
(21) сейчас попробую.
|
|||
23
tg30000
27.10.11
✎
12:59
|
ООООоооо работает!!)
|
|||
24
tg30000
27.10.11
✎
12:59
|
Всем БОЛЬШОЕ СПАСИБО!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |