Ошибка при вызове метода контекста числопрописью

Ошибка при вызове метода контекста (ЧислоПрописью): Несоответствие типов (параме ☑ 0

Смертник

24.04.13

10:47

ВЫБРАТЬ

   ЗаказыПоставщикамОстатки.Цена,

   ЗаказыПоставщикамОстатки.Номенклатура,

   ру_УсловияДоговораГрузоотправителиГрузополучатели.Грузополучатель КАК Грузополучатель,

   ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.УсловияПоставки КАК УсловияПоставки,

   ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ЧерезФилиал,

   ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ЧислоДней КАК ЧислоДней,

   ру_УсловияПоставки.СпособДоставки КАК СпособПоставки,

   ЗаказыПоставщикамОстатки.КоличествоОстаток КАК Количество,

   ЗаказыПоставщикамОстатки.СуммаВзаиморасчетовОстаток КАК Сумма,

   ЗаказыПоставщикамОстатки.СтавкаНДС,

   ЗаказыПоставщикамОстатки.ЗаказПоставщику.УчитыватьНДС КАК УчитыватьНДС,

   ЗаказыПоставщикамОстатки.СуммаВзаиморасчетовОстаток — ЗаказыПоставщикамОстатки.КоличествоОстаток * ЗаказыПоставщикамОстатки.Цена КАК СуммаНДС,

   ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ЧерезФилиал.Ссылка КАК Покупатель,

   ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ЧерезФилиал.НаименованиеПолное КАК НаименованиеПолное,

   ру_УсловияПоставки.СрокПоставки,

   бит_ЦФО_Организаций.Организация КАК Организация,

   ру_УсловияПоставки.ФормаПриложенияКДоговору КАК ФормаПриложенияКДоговору,

   ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ФормулировкаУсловийПоставки

ИЗ

   РегистрНакопления.ЗаказыПоставщикам.Остатки(, ЗаказПоставщику = &ТекущийДокумент) КАК ЗаказыПоставщикамОстатки

       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ру_УсловияДоговора.ГрузоотправителиГрузополучатели КАК ру_УсловияДоговораГрузоотправителиГрузополучатели

           ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ру_УсловияПоставки КАК ру_УсловияПоставки

           ПО ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.УсловияПоставки = ру_УсловияПоставки.Ссылка

       ПО ЗаказыПоставщикамОстатки.ДоговорКонтрагента = ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.Владелец

       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.бит_ЦФО_Организаций КАК бит_ЦФО_Организаций

       ПО ЗаказыПоставщикамОстатки.ЗаказПоставщику.Подразделение = бит_ЦФО_Организаций.ЦФО

При выполнении этого запроса в Консоли запросов все выдается хорошо, но при следущем условиях выхзывается ошибка которая в заголовке темы написана

Если ЗапросМТС[0].УсловияПоставки = Справочники.ру_УсловияДоговора.ПустаяСсылка() Тогда

       ОбластьМакета = Макет.ПолучитьОбласть(«П41»);

       Если ЗапросМТС[0].ЧислоДней = 0 И ЗапросМТС[0].ЧислоДней = Неопределено Тогда

           Сообщить(«Не заполнен реквизит Число дней элемента справочника Обязательства по оплате «);

           ОбластьМакета.Параметры.ЧислоДней = «»;

           ОбластьМакета.Параметры.ЧислоДнейПрописью = «»;

       Иначе

           ОбластьМакета.Параметры.ЧислоДней = ЗапросМТС[0].ЧислоДней;

           ОбластьМакета.Параметры.ЧислоДнейПрописью = ЧислоПрописью(ЗапросМТС[0].ЧислоДней, «», «»);

       КонецЕсли;

       ТабДокумент.Вывести(ОбластьМакета);

       ОбластьМакета = Макет.ПолучитьОбласть(«П42»);

       ТабДокумент.Вывести(ОбластьМакета);

   Иначе

       ОбластьМакета = Макет.ПолучитьОбласть(«П41»);

       Если ЗапросМТС[0].ЧислоДней = 0 Тогда

           Сообщить(«Не заполнен реквизит Число дней элемента справочника Обязательства по оплате «);

           ОбластьМакета.Параметры.ЧислоДней = «»;

           ОбластьМакета.Параметры.ЧислоДнейПрописью = «»;

       Иначе

           ОбластьМакета.Параметры.ЧислоДней = ЗапросМТС[0].ЧислоДней;

           ОбластьМакета.Параметры.ЧислоДнейПрописью = ЧислоПрописью(ЗапросМТС[0].ЧислоДней, ,);

       КонецЕсли;

       ТабДокумент.Вывести(ОбластьМакета);

   КонецЕсли;

1

Смертник

24.04.13

10:48

Ошибка возникает при попадании вот в это условие

Если ЗапросМТС[0].УсловияПоставки = Справочники.ру_УсловияДоговора.ПустаяСсылка() Тогда

2

qeos

24.04.13

10:49

разрешаю

3

Смертник

24.04.13

10:49

кого разрешаешь?

4

Галахад

24.04.13

10:51

ЧислоПрописью(ЗапросМТС[0].ЧислоДней)

5

Defender aka LINN

24.04.13

10:52

ЧислоПрописью(самолет) чему должно быть равно?

6

qeos

24.04.13

10:52

(3) я хз.. у тебя описание ошибки отчетливо все сказано.. значение где ты получаешь ЧислоПрописью не является числом..

7

Смертник

24.04.13

10:53

так сам тип у ЧислоДней — Число

8

qeos

24.04.13

10:53

ну или чтото типо того…

а так-то да.. прибор-12

9

qeos

24.04.13

10:53

подсказываю: смотри в отладчике

10

hhhh

24.04.13

10:54

(7) бредишь? Число у тебя, если есть условие договора.

11

Defender aka LINN

24.04.13

10:54

(7) Врешь

12

Смертник

24.04.13

10:56

Число у меня в любом случае — у него Типа другого нет

13

cw014

24.04.13

10:56

А ошибка возникает наверное потому что ЗапросМТС[0].ЧислоДней равен NULL

14

cw014

24.04.13

10:56

(12) Уверен? NULL? Не, не слышал

15

Defender aka LINN

24.04.13

10:56

(12) ВРЕШЬ

16

Wobland

24.04.13

10:57

(13) является нуллом ;)

17

cw014

24.04.13

10:58

(16) Это он в запросе является NULLом, а в коде 1С он равен NULL ))))

18

Defender aka LINN

24.04.13

11:00

(17) Кстати да. Тонкая разница :)

19

Смертник

24.04.13

11:02

ЗапросМТС[0].ЧислоДней =  NULL ничего не поменялось

20

qeos

24.04.13

11:04

21

Смертник

24.04.13

11:04

Если ЗапросМТС.ЧислоДней = 0 И ЗапросМТС.ЧислоДней = NULL Тогда

           Сообщить(«Не заполнен реквизит Число дней элемента справочника Обязательства по оплате «);

           ОбластьМакета.Параметры.ЧислоДней = «»;

           ОбластьМакета.Параметры.ЧислоДнейПрописью = «»;

Он должен попадать сюда и никуда ниже не идти

22

Галахад

24.04.13

11:04

В (0) «параме» там цифра, наверное есть?

23

Defender aka LINN

24.04.13

11:05

(19) рукалицо…

24

Смертник

24.04.13

11:09

если консолью выводить то выводит 0

25

hhhh

24.04.13

11:11

(24) вот это полный бред. С утру выпил ты что ли?

Если ЗапросМТС.ЧислоДней = 0 И ЗапросМТС.ЧислоДней = NULL Тогда

26

hhhh

24.04.13

11:12

как может поле одновременно быть и NULL и 0?

27

НЕА123

24.04.13

11:13

(26) это квантовая теория.

28

GROOVY

24.04.13

11:14

Да запихни все в Попытка Исключение и делов!

;)

29

cw014

24.04.13

11:21

(27) Нет, это теория струн )))

(21) «Слышь ты, барашка…» (С) День выборов

В запросе явно укажи что:

ЕСТЬNULL(ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ЧислоДней,0) КАК ЧислоДней,

30

Смертник

24.04.13

11:27

Справочники.ру_УсловияДоговора.ПустаяСсылка() а на что еще можно проверять ссылку?

31

cw014

24.04.13

11:31

Все, я спекся после (30) сообщения. Пойду валерьянки попью

32

qeos

24.04.13

11:33

(28)

Процедура ПриНачалеРаботыСистемы()

  Попытка

КонецПроцедуры

Процедура ПриЗавершенииРаботыСистемы()

  Исключение

     // все ок

  КонецПопытки;

КонецПроцедуры

33

hhhh

24.04.13

11:33

(30) ну сам же знаешь

Если ЗапросМТС[0].УсловияПоставки = Справочники.ру_УсловияДоговора.ПустаяСсылка() И ЗапросМТС[0].УсловияПоставки = NULL Тогда

34

hhhh

24.04.13

11:35

(33)+ но всё-таки почитай про теорию струн

35

cw014

24.04.13

11:35

(33) ЭТО ЧТО?????

36

hhhh

24.04.13

11:38

(35) ну, симбиоз (1) и (21).

37

Смертник

24.04.13

11:41

Все сделал — сам в одном случае напортачил, а в другом ссылку не на тот справочник проверял. Спасибо — повод выпить есть)

Перем ИмяМакета;

Перем мВалютаРегламентированногоУчета;

Функция Печать()Экспорт;

Запрос = Новый Запрос;

Запрос.УстановитьПараметр(«ТекущийДокумент», СсылкаНаОбъект.Ссылка);

Запрос.УстановитьПараметр(«Дата», СсылкаНаОбъект.Дата);

Запрос.Текст = «ВЫБРАТЬ

               | ДокЧек.Номер КАК Номер,

               | ДокЧек.Дата КАК Дата,

               | ДокЧек.КассаККМ КАК КассаККМ,

               | ДокЧек.Организация КАК Организация,

               | ВЫБОР

               | КОГДА ДокЧек.Организация.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ЮрЛицо)

               | ТОГДА ДокЧек.Организация.НаименованиеПолное

               | ИНАЧЕ «»ИП «» + ВЫБОР

               | КОГДА ЕСТЬNULL(ФИОФизЛицСрезПоследнихИП.Фамилия, «»»») = «»»»

               | ТОГДА «»»»

               | ИНАЧЕ ФИОФизЛицСрезПоследнихИП.Фамилия + «» «» + ВЫБОР

               | КОГДА ЕСТЬNULL(ФИОФизЛицСрезПоследнихИП.Имя, «»»») = «»»»

               | ТОГДА «»»»

               | ИНАЧЕ (ВЫРАЗИТЬ(ФИОФизЛицСрезПоследнихИП.Имя КАК СТРОКА(1))) + «». «»

               | КОНЕЦ + ВЫБОР

               | КОГДА ЕСТЬNULL(ФИОФизЛицСрезПоследнихИП.Отчество, «»»») = «»»»

               | ТОГДА «»»»

               | ИНАЧЕ (ВЫРАЗИТЬ(ФИОФизЛицСрезПоследнихИП.Отчество КАК СТРОКА(1))) + «».»»

               | КОНЕЦ

               | КОНЕЦ + «»»»

               | КОНЕЦ КАК НаименованиеОрганизации,

               | ДокЧек.СуммаДокумента КАК СуммаДокумента,

               | ДокЧек.ВидОперации КАК ВидОперации,

               | ДокЧек.Товары.(

               | НомерСтроки КАК НомерСтроки,

               | Номенклатура КАК Номенклатура,

               | Номенклатура.Представление КАК Товар,

               | Номенклатура.НаименованиеПолное КАК ТоварПолноеНаименование,

               | Номенклатура.Код КАК Код,

               | Номенклатура.Артикул КАК Артикул,

               | Количество КАК Количество,

               | ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,

               | Цена КАК Цена,

               | ПроцентСкидкиНаценки КАК Скидка,

               | ПроцентАвтоматическихСкидок КАК СкидкаАвтоматическая,

               | Сумма КАК Сумма,

               | ХарактеристикаНоменклатуры КАК Характеристика,

               | СерияНоменклатуры КАК Серия,

               | БИТ_Склад КАК БИТ_Склад

               | ) КАК Товары,

               | ДокЧек.Оплата.(

               | НомерСтроки КАК НомерСтроки,

               | ВидОплаты КАК ВидОплаты,

               | Сумма КАК Сумма

               | ) КАК Оплата,

               | ВЫБОР

               | КОГДА ЕСТЬNULL(ФИОФизЛицСрезПоследних.Фамилия, «»»») = «»»»

               | ТОГДА «»»»

               | ИНАЧЕ ФИОФизЛицСрезПоследних.Фамилия + «» «» + ВЫБОР

               | КОГДА ЕСТЬNULL(ФИОФизЛицСрезПоследних.Имя, «»»») = «»»»

               | ТОГДА «»»»

               | ИНАЧЕ (ВЫРАЗИТЬ(ФИОФизЛицСрезПоследних.Имя КАК СТРОКА(1))) + «». «»

               | КОНЕЦ + ВЫБОР

               | КОГДА ЕСТЬNULL(ФИОФизЛицСрезПоследних.Отчество, «»»») = «»»»

               | ТОГДА «»»»

               | ИНАЧЕ (ВЫРАЗИТЬ(ФИОФизЛицСрезПоследних.Отчество КАК СТРОКА(1))) + «».»»

               | КОНЕЦ

               | КОНЕЦ КАК ФИО,

               | ВложенныйЗапрос.БИТ_Склад КАК БИТ_Склад

               |ИЗ

               | Документ.ЧекККМ КАК ДокЧек

               | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи

               | ПО (Пользователи.Ссылка = ДокЧек.Ответственный)

               | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица

               | ПО (Пользователи.ФизЛицо = ФизическиеЛица.Ссылка)

               | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&Дата, ) КАК ФИОФизЛицСрезПоследних

               | ПО (ФизическиеЛица.Ссылка = ФИОФизЛицСрезПоследних.ФизЛицо)

               | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&Дата, ) КАК ФИОФизЛицСрезПоследнихИП

               | ПО ДокЧек.Организация.ИндивидуальныйПредприниматель = ФИОФизЛицСрезПоследнихИП.ФизЛицо,

               | (ВЫБРАТЬ

               | ЧекККМТовары.Ссылка КАК Ссылка,

               | ЧекККМТовары.БИТ_Склад КАК БИТ_Склад

               | ИЗ

               | Документ.ЧекККМ.Товары КАК ЧекККМТовары

               | ГДЕ

               | ЧекККМТовары.Ссылка = &ТекущийДокумент

               |

               | СГРУППИРОВАТЬ ПО

               | ЧекККМТовары.БИТ_Склад,

               | ЧекККМТовары.Ссылка) КАК ВложенныйЗапрос

               |ГДЕ

               | ДокЧек.Ссылка = &ТекущийДокумент

               |

               |УПОРЯДОЧИТЬ ПО

               | ДокЧек.Товары.НомерСтроки

               |ИТОГИ ПО

               | БИТ_Склад»;

Шапка = Запрос.Выполнить().Выбрать();

Шапка.Следующий();

ТабДокумент = Новый ТабличныйДокумент;

ТабДокумент.ИмяПараметровПечати = «ПАРАМЕТРЫ_ПЕЧАТИ_Товарный_Чек»;

Макет = ПолучитьМакет(«Товарный_Чек»);

// Выводим шапку накладной.

ОбластьМакета = Макет.ПолучитьОбласть(«Заголовок»);

Если Шапка.ВидОперации = Перечисления.ВидыОперацийЧекККМ.Возврат Тогда

ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, «Чек (возврат)»);

Иначе

ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка,      «Товарный чек»);

КонецЕсли;

ОбластьМакета.Параметры.ПредставлениеПоставщика = «ИП Мерзакулов Р.М»;

//ОбластьМакета.Параметры.ПредставлениеПоставщика = Шапка.Организация;

ОбластьМакета.Параметры.ИНН = «235703731865»;

ТабДокумент.Вывести(ОбластьМакета);

ЕстьСкидки = Ложь;

ВыборкаСтрокТовары = Шапка.Товары.Выбрать();

Пока ВыборкаСтрокТовары.Следующий() Цикл

Если ВыборкаСтрокТовары.Скидка + ВыборкаСтрокТовары.СкидкаАвтоматическая <> 0 Тогда

ЕстьСкидки = Истина;

КонецЕсли;

КонецЦикла;

//ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();

//Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда

// ВыводитьКоды = Истина;

// Колонка = «Артикул»;

//ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда

// ВыводитьКоды = Истина;

// Колонка = «Код»;

//Иначе

// ВыводитьКоды = Ложь;

//КонецЕсли;

ОбластьНомера = Макет.ПолучитьОбласть(«ШапкаТаблицы|НомерСтроки»);

//ОбластьКодов  = Макет.ПолучитьОбласть(«ШапкаТаблицы|КолонкаКодов»);

ОбластьДанных = Макет.ПолучитьОбласть(«ШапкаТаблицы|Данные»);

//ОбластьСкидок = Макет.ПолучитьОбласть(«ШапкаТаблицы|Скидка»);

ОбластьСуммы  = Макет.ПолучитьОбласть(«ШапкаТаблицы|Сумма»);

ОбластьСклад = Макет.ПолучитьОбласть(«ШапкаТаблицы|Склад»);

ТабДокумент.Вывести(ОбластьНомера);

//Если ВыводитьКоды Тогда    ///Артикул

// ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;

// ТабДокумент.Присоединить(ОбластьКодов);

//КонецЕсли;

ТабДокумент.Присоединить(ОбластьДанных);

//Если ЕстьСкидки Тогда

// ТабДокумент.Присоединить(ОбластьСкидок);

//КонецЕсли;

ТабДокумент.Присоединить(ОбластьСуммы);

ТабДокумент.Присоединить(ОбластьСклад);

ОбластьКолонкаТовар = Макет.Область(«Товар»);

//Если Не ВыводитьКоды Тогда

// ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки

//                                   + Макет.Область(«КолонкаКодов»).ШиринаКолонки;

//КонецЕсли;

Если Не ЕстьСкидки Тогда

ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки

                                  + Макет.Область(«Сумма»).ШиринаКолонки;

КонецЕсли;

ОбластьНомера = Макет.ПолучитьОбласть(«Строка|НомерСтроки»);

//ОбластьКодов  = Макет.ПолучитьОбласть(«Строка|КолонкаКодов»);

ОбластьДанных = Макет.ПолучитьОбласть(«Строка|Данные»);

//ОбластьСкидок = Макет.ПолучитьОбласть(«Строка|Скидка»);

ОбластьСуммы  = Макет.ПолучитьОбласть(«Строка|Сумма»);

ОбластьСклад= Макет.ПолучитьОбласть(«Строка|Склад»);

Сумма          = 0;

ВсегоСкидок    = 0;

ВсегоБезСкидок = 0;

ВыборкаСтрокТовары = Шапка.Товары.Выбрать();

Пока ВыборкаСтрокТовары.Следующий() Цикл

Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда

Сообщить(«В одной из строк не заполнено значение номенклатуры — строка при печати пропущена.», СтатусСообщения.Важное);

Продолжить;

КонецЕсли;

ОбластьНомера.Параметры.Заполнить(ВыборкаСтрокТовары);

ТабДокумент.Вывести(ОбластьНомера);

//Если ВыводитьКоды Тогда

// Если Колонка = «Артикул» Тогда

// ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;

// Иначе

// ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;

// КонецЕсли;

// ТабДокумент.Присоединить(ОбластьКодов);

//КонецЕсли;

ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);

ОбластьДанных.Параметры.Товар = ?(НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.ТоварПолноеНаименование),

                                ВыборкаСтрокТовары.Товар, ВыборкаСтрокТовары.ТоварПолноеНаименование)

                              + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары);

ТабДокумент.Присоединить(ОбластьДанных);

//Скидка = ВыборкаСтрокТовары.Цена * ВыборкаСтрокТовары.Количество — ВыборкаСтрокТовары.Сумма;

//Если ЕстьСкидки Тогда

// ОбластьСкидок.Параметры.Скидка         = Скидка;

// ОбластьСкидок.Параметры.СуммаБезСкидки = ВыборкаСтрокТовары.Сумма + Скидка;

// ТабДокумент.Присоединить(ОбластьСкидок);

//КонецЕсли;

ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);

ТабДокумент.Присоединить(ОбластьСуммы);

ТабДокумент.Присоединить(ОбластьСклад);//Выводим склад в таличную часть печатной формы 

Сумма          = Сумма + ВыборкаСтрокТовары.Сумма;

//ВсегоСкидок    = ВсегоСкидок + Скидка;

ВсегоБезСкидок = Сумма + ВсегоСкидок;

//КонецЕсли;

КонецЦикла;

// Вывести Итого.

ОбластьНомера = Макет.ПолучитьОбласть(«Итого|НомерСтроки»);

//ОбластьКодов  = Макет.ПолучитьОбласть(«Итого|КолонкаКодов»);

ОбластьДанных = Макет.ПолучитьОбласть(«Итого|Данные»);

//ОбластьСкидок = Макет.ПолучитьОбласть(«Итого|Скидка»);

ОбластьСуммы  = Макет.ПолучитьОбласть(«Итого|Сумма»);

ТабДокумент.Вывести(ОбластьНомера);

//Если ВыводитьКоды Тогда

// ТабДокумент.Присоединить(ОбластьКодов);

//КонецЕсли;

ТабДокумент.Присоединить(ОбластьДанных);

//Если ЕстьСкидки Тогда

// ОбластьСкидок.Параметры.ВсегоСкидок    = ВсегоСкидок;

// ОбластьСкидок.Параметры.ВсегоБезСкидок = ВсегоБезСкидок;

// ТабДокумент.Присоединить(ОбластьСкидок);

//КонецЕсли;

ОбластьСуммы.Параметры.Всего = Сумма;

ТабДокумент.Присоединить(ОбластьСуммы);

мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();

// Вывести Сумму прописью.

ОбластьМакета = Макет.ПолучитьОбласть(«СуммаПрописью»);

ОбластьМакета.Параметры.ИтоговаяСтрока = «Всего наименований » + ВыборкаСтрокТовары.Количество()

                                       + «, на сумму » + ОбщегоНазначения.ФорматСумм(Шапка.СуммаДокумента, мВалютаРегламентированногоУчета);

ОбластьМакета.Параметры.СуммаПрописью  = ОбщегоНазначения.СформироватьСуммуПрописью(Шапка.СуммаДокумента, мВалютаРегламентированногоУчета);

ТабДокумент.Вывести(ОбластьМакета);

// Вывести Оплату и Сдачу.

СуммаОплат = 0;

СуммаБезналичныхОплат = 0;

СписокОплат = Новый Соответствие();

ВыборкаОплат = Шапка.Оплата.Выбрать();

Пока ВыборкаОплат.Следующий() Цикл

Если Шапка.ВидОперации = Перечисления.ВидыОперацийЧекККМ.Возврат

   И ВыборкаОплат.ВидОплаты.ТипОплаты <> Перечисления.ТипыОплатЧекаККМ.Наличные Тогда

СуммаБезналичныхОплат = СуммаБезналичныхОплат + ВыборкаОплат.Сумма;

КонецЕсли;

ЗаписьОплаты = СписокОплат.Получить(Строка(ВыборкаОплат.ВидОплаты.ТипОплаты));

Если ЗаписьОплаты = Неопределено Тогда

СписокОплат.Вставить(Строка(ВыборкаОплат.ВидОплаты.ТипОплаты), ВыборкаОплат.Сумма);

Иначе

СписокОплат.Вставить(Строка(ВыборкаОплат.ВидОплаты.ТипОплаты), ЗаписьОплаты + ВыборкаОплат.Сумма);

КонецЕсли;

СуммаОплат = СуммаОплат + ВыборкаОплат.Сумма;

КонецЦикла;

//Отдельная подготовка наличной оплаты для чека возврата

Если Шапка.ВидОперации = Перечисления.ВидыОперацийЧекККМ.Возврат Тогда

СписокОплат.Вставить(Строка(Перечисления.ТипыОплатЧекаККМ.Наличные), Шапка.СуммаДокумента — СуммаБезналичныхОплат);

КонецЕсли;

//ОбластьМакета = Макет.ПолучитьОбласть(«Оплата»);

//ОплатаДобавлена = Ложь;

//Для Каждого ЗнПеречисления Из Перечисления.ТипыОплатЧекаККМ Цикл

// ЗаписьОплаты = СписокОплат.Получить(Строка(ЗнПеречисления));

// Если ЗаписьОплаты <> Неопределено Тогда

// ОбластьМакета.Параметры.Оплата = ?(ОплатаДобавлена, ОбластьМакета.Параметры.Оплата + Символы.ПС, «»)

//                                + Строка(ЗнПеречисления) + «: »  + Формат(ЗаписьОплаты, «ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧН=; ЧГ=0»);

// ОплатаДобавлена = Истина;

// КонецЕсли;

//КонецЦикла;

//Если Шапка.ВидОперации = Перечисления.ВидыОперацийЧекККМ.Продажа Тогда

// ОбластьМакета.Параметры.Сдача = Формат(СуммаОплат — Шапка.СуммаДокумента, «ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧН=; ЧГ=0»);

//Иначе

// ОбластьМакета.Параметры.Сдача = «0.00»;

//КонецЕсли;

//ТабДокумент.Вывести(ОбластьМакета);

// Вывести подписи.

ОбластьМакета = Макет.ПолучитьОбласть(«Подвал»);

ТабДокумент.Вывести(ОбластьМакета);

  Возврат ТабДокумент;

///Печать Для кладовщика

Запрос = Новый Запрос;

Запрос.УстановитьПараметр(«ТекущийДокумент», СсылкаНаОбъект.Ссылка);

Запрос.УстановитьПараметр(«Дата», СсылкаНаОбъект.Дата);

Запрос.Текст = «ВЫБРАТЬ

               | ДокЧек.Номер,

               | ДокЧек.Дата,

               | ДокЧек.КассаККМ,

               | ДокЧек.Организация КАК Организация,

               | ВЫБОР

               | КОГДА ДокЧек.Организация.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ЮрЛицо)

               | ТОГДА ДокЧек.Организация.НаименованиеПолное

               | ИНАЧЕ «»ИП «» + ВЫБОР

               | КОГДА ЕСТЬNULL(ФИОФизЛицСрезПоследнихИП.Фамилия, «»»») = «»»»

               | ТОГДА «»»»

               | ИНАЧЕ ФИОФизЛицСрезПоследнихИП.Фамилия + «» «» + ВЫБОР

               | КОГДА ЕСТЬNULL(ФИОФизЛицСрезПоследнихИП.Имя, «»»») = «»»»

               | ТОГДА «»»»

               | ИНАЧЕ (ВЫРАЗИТЬ(ФИОФизЛицСрезПоследнихИП.Имя КАК СТРОКА(1))) + «». «»

               | КОНЕЦ + ВЫБОР

               | КОГДА ЕСТЬNULL(ФИОФизЛицСрезПоследнихИП.Отчество, «»»») = «»»»

               | ТОГДА «»»»

               | ИНАЧЕ (ВЫРАЗИТЬ(ФИОФизЛицСрезПоследнихИП.Отчество КАК СТРОКА(1))) + «».»»

               | КОНЕЦ

               | КОНЕЦ + «»»»

               | КОНЕЦ КАК НаименованиеОрганизации,

               | ДокЧек.СуммаДокумента,

               | ДокЧек.ВидОперации,

               | ДокЧек.Товары.(

               | НомерСтроки,

               | Номенклатура,

               | Номенклатура.Представление КАК Товар,

               | Номенклатура.НаименованиеПолное КАК ТоварПолноеНаименование,

               | Номенклатура.Код КАК Код,

               | Номенклатура.Артикул КАК Артикул,

               | Количество,

               | ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,

               | Цена,

               | ПроцентСкидкиНаценки КАК Скидка,

               | ПроцентАвтоматическихСкидок КАК СкидкаАвтоматическая,

               | Сумма,

               | ХарактеристикаНоменклатуры КАК Характеристика,

               | СерияНоменклатуры КАК Серия,

               | БИТ_Склад КАК БИТ_Склад

               | ),

               | ДокЧек.Оплата.(

               | НомерСтроки,

               | ВидОплаты,

               | Сумма

               | ),

               | ВЫБОР

               | КОГДА ЕСТЬNULL(ФИОФизЛицСрезПоследних.Фамилия, «»»») = «»»»

               | ТОГДА «»»»

               | ИНАЧЕ ФИОФизЛицСрезПоследних.Фамилия + «» «» + ВЫБОР

               | КОГДА ЕСТЬNULL(ФИОФизЛицСрезПоследних.Имя, «»»») = «»»»

               | ТОГДА «»»»

               | ИНАЧЕ (ВЫРАЗИТЬ(ФИОФизЛицСрезПоследних.Имя КАК СТРОКА(1))) + «». «»

               | КОНЕЦ + ВЫБОР

               | КОГДА ЕСТЬNULL(ФИОФизЛицСрезПоследних.Отчество, «»»») = «»»»

               | ТОГДА «»»»

               | ИНАЧЕ (ВЫРАЗИТЬ(ФИОФизЛицСрезПоследних.Отчество КАК СТРОКА(1))) + «».»»

               | КОНЕЦ

               | КОНЕЦ КАК ФИО,

               | ВложенныйЗапрос.БИТ_Склад КАК БИТ_Склад

               |ИЗ

               | Документ.ЧекККМ КАК ДокЧек

               | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи

               | ПО (Пользователи.Ссылка = ДокЧек.Ответственный)

               | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица

               | ПО (Пользователи.ФизЛицо = ФизическиеЛица.Ссылка)

               | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&Дата, ) КАК ФИОФизЛицСрезПоследних

               | ПО (ФизическиеЛица.Ссылка = ФИОФизЛицСрезПоследних.ФизЛицо)

               | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&Дата, ) КАК ФИОФизЛицСрезПоследнихИП

               | ПО ДокЧек.Организация.ИндивидуальныйПредприниматель = ФИОФизЛицСрезПоследнихИП.ФизЛицо

               | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ

               | ЧекККМТовары.Ссылка КАК Ссылка,

               | ЧекККМТовары.БИТ_Склад КАК БИТ_Склад

               | ИЗ

               | Документ.ЧекККМ.Товары КАК ЧекККМТовары

               | ГДЕ

               | ЧекККМТовары.Ссылка = &ТекущийДокумент

               |

               | СГРУППИРОВАТЬ ПО

               | ЧекККМТовары.Ссылка,

               | ЧекККМТовары.БИТ_Склад) КАК ВложенныйЗапрос

               | ПО ДокЧек.Ссылка = ВложенныйЗапрос.Ссылка

               |ГДЕ

               | ДокЧек.Ссылка = &ТекущийДокумент

               |

               |УПОРЯДОЧИТЬ ПО

               | ДокЧек.Товары.НомерСтроки

               |ИТОГИ ПО

               | БИТ_Склад»;

ВыборкаСклад=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаСклад.Следующий()Цикл

ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();

        Шапка = Запрос.Выполнить().Выбрать();

Пока Шапка.Следующий()Цикл

ТабДокумент = Новый ТабличныйДокумент;

ТабДокумент.ИмяПараметровПечати = «ПАРАМЕТРЫ_ПЕЧАТИ_Товарный_Чек»;

Макет = ПолучитьМакет(«Товарный_Чек»);

// Выводим шапку накладной.

ОбластьМакета = Макет.ПолучитьОбласть(«Заголовок1»);

Если Шапка.ВидОперации = Перечисления.ВидыОперацийЧекККМ.Возврат Тогда

ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, «Чек (возврат)»);

Иначе

ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка,      «Товарный чек»);

КонецЕсли;

ОбластьМакета.Параметры.ПредставлениеПоставщика = «ИП Мерзакулов Р.М»;

ОбластьМакета.Параметры.ИНН = «»;

ОбластьМакета.Параметры.Склад= ВыборкаСклад.БИТ_Склад;

ТабДокумент.Вывести(ОбластьМакета);

ЕстьСкидки = Ложь;

//ВыборкаСтрокТовары = Шапка.Товары.Выбрать();

//Пока ВыборкаСтрокТовары.Следующий() Цикл

// Если ВыборкаСтрокТовары.Скидка + ВыборкаСтрокТовары.СкидкаАвтоматическая <> 0 Тогда

// ЕстьСкидки = Истина;

// КонецЕсли;

//КонецЦикла;

ОбластьНомера = Макет.ПолучитьОбласть(«ШапкаТаблицы1|НомерСтроки»);

ОбластьДанных = Макет.ПолучитьОбласть(«ШапкаТаблицы1|Данные»);

ОбластьСуммы  = Макет.ПолучитьОбласть(«ШапкаТаблицы1|Сумма»);

//ОбластьСклад = Макет.ПолучитьОбласть(«ШапкаТаблицы1|Склад»);

ТабДокумент.Вывести(ОбластьНомера);

ТабДокумент.Присоединить(ОбластьДанных);

ТабДокумент.Присоединить(ОбластьСуммы);

ОбластьКолонкаТовар = Макет.Область(«Товар»);

Если Не ЕстьСкидки Тогда

ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки

                                  + Макет.Область(«Сумма»).ШиринаКолонки;

КонецЕсли;

ОбластьНомера = Макет.ПолучитьОбласть(«Строка1|НомерСтроки»);

ОбластьДанных = Макет.ПолучитьОбласть(«Строка1|Данные»);   

ОбластьСуммы  = Макет.ПолучитьОбласть(«Строка1|Сумма»);   

//ОбластьСклад= Макет.ПолучитьОбласть(«Строка|Склад»);   Убираем область склад 

Сумма          = 0;

ВсегоСкидок    = 0;

ВсегоБезСкидок = 0;

ВыборкаСтрокТовары = Шапка.Товары.Выбрать();

Пока ВыборкаСтрокТовары.Следующий() Цикл

Если ВыборкаСтрокТовары.БИТ_Склад=ВыборкаСклад.БИТ_Склад ТОгда

  Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда

Сообщить(«В одной из строк не заполнено значение номенклатуры — строка при печати пропущена.», СтатусСообщения.Важное);

Продолжить;

КонецЕсли;

ОбластьНомера.Параметры.Заполнить(ВыборкаСтрокТовары); ///????

ТабДокумент.Вывести(ОбластьНомера);

ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);

ОбластьДанных.Параметры.Товар = ?(НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.ТоварПолноеНаименование),

                                ВыборкаСтрокТовары.Товар, ВыборкаСтрокТовары.ТоварПолноеНаименование)

                              + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары);

ТабДокумент.Вывести(ОбластьНомера);   

ТабДокумент.Присоединить(ОбластьДанных);   

ТабДокумент.Вывести(ОбластьМакета);

Сумма          = Сумма + ВыборкаСтрокТовары.Сумма;

ВсегоБезСкидок = Сумма + ВсегоСкидок;

ТабДокумент.Присоединить(ОбластьСуммы);

КонецЕсли;

КонецЦикла;

// Вывести Итого.

ОбластьНомера = Макет.ПолучитьОбласть    («Итого1|НомерСтроки»);

ОбластьДанных = Макет.ПолучитьОбласть(«Итого1|Данные»);

ОбластьСуммы  = Макет.ПолучитьОбласть(«Итого1|Сумма»);

ТабДокумент.Вывести(ОбластьНомера);

ТабДокумент.Присоединить(ОбластьДанных);

ОбластьСуммы.Параметры.Всего = Сумма;

ТабДокумент.Присоединить(ОбластьСуммы);

    мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();

// Вывести Сумму прописью.

ОбластьМакета = Макет.ПолучитьОбласть(«СуммаПрописью1»);

ОбластьМакета.Параметры.ИтоговаяСтрока = «Всего наименований » + ВыборкаСтрокТовары.Количество()

                                       + «, на сумму » + ОбщегоНазначения.ФорматСумм(Шапка.СуммаДокумента, мВалютаРегламентированногоУчета);

ОбластьМакета.Параметры.СуммаПрописью  = ОбщегоНазначения.СформироватьСуммуПрописью(Шапка.СуммаДокумента, мВалютаРегламентированногоУчета);

ТабДокумент.Вывести(ОбластьМакета);

// Вывести Оплату и Сдачу.

СуммаОплат = 0;

СуммаБезналичныхОплат = 0;

СписокОплат = Новый Соответствие();

ВыборкаОплат = Шапка.Оплата.Выбрать();

Пока ВыборкаОплат.Следующий() Цикл

Если Шапка.ВидОперации = Перечисления.ВидыОперацийЧекККМ.Возврат

   И ВыборкаОплат.ВидОплаты.ТипОплаты <> Перечисления.ТипыОплатЧекаККМ.Наличные Тогда

СуммаБезналичныхОплат = СуммаБезналичныхОплат + ВыборкаОплат.Сумма;

КонецЕсли;

ЗаписьОплаты = СписокОплат.Получить(Строка(ВыборкаОплат.ВидОплаты.ТипОплаты));

Если ЗаписьОплаты = Неопределено Тогда

СписокОплат.Вставить(Строка(ВыборкаОплат.ВидОплаты.ТипОплаты), ВыборкаОплат.Сумма);

Иначе

СписокОплат.Вставить(Строка(ВыборкаОплат.ВидОплаты.ТипОплаты), ЗаписьОплаты + ВыборкаОплат.Сумма);

КонецЕсли;

СуммаОплат = СуммаОплат + ВыборкаОплат.Сумма;

КонецЦикла;

//Отдельная подготовка наличной оплаты для чека возврата

Если Шапка.ВидОперации = Перечисления.ВидыОперацийЧекККМ.Возврат Тогда

СписокОплат.Вставить(Строка(Перечисления.ТипыОплатЧекаККМ.Наличные), Шапка.СуммаДокумента — СуммаБезналичныхОплат);

КонецЕсли;

// Вывести подписи.

ОбластьМакета = Макет.ПолучитьОбласть(«Подвал1»);

ТабДокумент.Вывести(ОбластьМакета);

КонецЦикла

  КонецЦикла;

//Возврат ТабДокумент;

КонецФункции // ПечатьЧека(

Число прописью

Автор gliokker, 18 сен 2013, 08:59

0 Пользователей и 1 гость просматривают эту тему.

Всем привет вот кусок модуля
Запрос = Новый Запрос;
   Запрос.Текст =
   «ВЫБРАТЬ
   |   ПриемНаРаботуВОрганизацию.Дата,
   |   ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник.НомерДоговора КАК НомерДоговора,
   |   ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник,
   |   ГражданствоФизЛиц.Страна,
   |   ПриемНаРаботуВОрганизациюРаботникиОрганизации.Должность,
   |   ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник.ВидЗанятости КАК ВидЗанятости,
   |   ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник.ИспытательныйСрок КАК ИспытательныйСрок,
   |   ПриемНаРаботуВОрганизациюОсновныеНачисления.Показатель1
   |ИЗ
   |   Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизациюРаботникиОрганизации
   |      ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию
   |      ПО ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка = ПриемНаРаботуВОрганизацию.Ссылка,
   |   РегистрСведений.ГражданствоФизЛиц КАК ГражданствоФизЛиц,
   |   Документ.ПриемНаРаботуВОрганизацию.ОсновныеНачисления КАК ПриемНаРаботуВОрганизациюОсновныеНачисления
   |ГДЕ
   |   ПриемНаРаботуВОрганизацию.Ссылка = &ТекущийДокумент»;

      Запрос.УстановитьПараметр(«ТекущийДокумент», СсылкаНаОбъект);

      Выборка = Запрос.Выполнить().Выбрать();
   Выборка.Следующий();   
   ТабДокумент = Новый ТабличныйДокумент;
   Макет = ПолучитьМакет(«Макет»);
   ОбластьМакета = Макет.ПолучитьОбласть(«Заголовок»);

   ФормСтрока = «Л = ru_RU; ДП = Истина»;
ПарПредмета=»рубль ,рубля ,рублей ,м,копейка,копейки,копеек,ж,2″;  //ПрописьЧисла
Показатель1 = ЧислоПрописью(ФормСтрока, ПарПредмета);

   ОбластьМакета.Параметры.Заполнить(Выборка);
   ТабДокумент.Вывести(ОбластьМакета);
Я хочу чтоб в печатной форме параметр Показатель1 (число) выводилось прописью.Что я неправельно делаю? программа выдаёт ошибку
Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (ЧислоПрописью): Несоответствие типов (параметр номер ‘1’)


Первым параметром идет само число

ЧислоПрописью(Показатель1,ФормСтрока, ПарПредмета);





Цитировать
Точно число

А какое значение в нем лежит после выполнения запроса?


Цитата: JoeButcher от 18 сен 2013, 09:18

Цитировать
Точно число

А какое значение в нем лежит после выполнения запроса?

Всё там нормально число 5 000 выводит в печатную форму,а вот прописью не выводит.Можа нужно этот параметр сперва записать потом выводить? Я ставил и чтоб пробелы невидел
ФормСтрока = «Л = ru_RU; ДП = Истина»;
ПарПредмета=»рубль ,рубля ,рублей ,м,копейка,копейки,копеек,ж,2″;//ПрописьЧисла
Показатель1    = ЧислоПрописью (Формат(Показатель1, «ЧГ = 0»), ФормСтрока, ПарПредмета);
всё равно не выводит прописью.


Показатель1 = ЧислоПрописью(Выборка.Показатель1,ФормСтрока, ПарПредмета);
ОбластьМакета.Параметры.Заполнить(Выборка);
ОбластьМакета.Параметры.Показатель1 = Показатель1;

Если долго всматриваться в учебник…то в голову может прийти мысль его открыть!


Цитата: Dethmontt от 18 сен 2013, 10:05
Показатель1 = ЧислоПрописью(Выборка.Показатель1,ФормСтрока, ПарПредмета);
ОбластьМакета.Параметры.Заполнить(Выборка);
ОбластьМакета.Параметры.Показатель1 = Показатель1;

Хах, ну так-то да :D


Цитата: Dethmontt от 18 сен 2013, 10:05
Показатель1 = ЧислоПрописью(Выборка.Показатель1,ФормСтрока, ПарПредмета);
ОбластьМакета.Параметры.Заполнить(Выборка);
ОбластьМакета.Параметры.Показатель1 = Показатель1;

Вот что получилось

         Запрос = Новый Запрос;
   Запрос.Текст =
   «ВЫБРАТЬ
   |   ПриемНаРаботуВОрганизацию.Дата,
   |   ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник.НомерДоговора КАК НомерДоговора,
   |   ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник,
   |   ГражданствоФизЛиц.Страна,
   |   ПриемНаРаботуВОрганизациюРаботникиОрганизации.Должность,
   |   ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник.ВидЗанятости КАК ВидЗанятости,
   |   ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник.ИспытательныйСрок КАК ИспытательныйСрок,
   |   ПриемНаРаботуВОрганизациюОсновныеНачисления.Показатель1
   |ИЗ
   |   Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизациюРаботникиОрганизации
   |      ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию
   |      ПО ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка = ПриемНаРаботуВОрганизацию.Ссылка,
   |   РегистрСведений.ГражданствоФизЛиц КАК ГражданствоФизЛиц,
   |   Документ.ПриемНаРаботуВОрганизацию.ОсновныеНачисления КАК ПриемНаРаботуВОрганизациюОсновныеНачисления
   |ГДЕ
   |   ПриемНаРаботуВОрганизацию.Ссылка = &ТекущийДокумент»;

      Запрос.УстановитьПараметр(«ТекущийДокумент», СсылкаНаОбъект);
   Выборка = Запрос.Выполнить().Выбрать();
   Выборка.Следующий();   

      ТабДокумент = Новый ТабличныйДокумент;
   Макет = ПолучитьМакет(«Макет»);
   ОбластьМакета = Макет.ПолучитьОбласть(«Заголовок»);

   ФормСтрока = «Л = ru_RU; ДП = Истина»;
ПарПредмета=»рубль ,рубля ,рублей ,м,копейка,копейки,копеек,ж,2″;//ПрописьЧисла
Показатель1 = ЧислоПрописью(Выборка.Показатель1,ФормСтрока, ПарПредмета);
ОбластьМакета.Параметры.Заполнить(Выборка);
ОбластьМакета.Параметры.Показатель1 = Показатель1;
ТабДокумент.Вывести(ОбластьМакета);

а вот что выдаёт
Не удалось сформировать внешнюю печатную форму!
Поле объекта не обнаружено (Показатель1)
сразу откину вопросы,да параметр есть на макете,в запросе тоже есть, Показатель1 тип число.


ВЫБРАТЬ    ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ФормулировкаУсловийПоставки При выполнении этого запроса в Консоли запросов все выдается хорошо, но при следущем условиях выхзывается ошибка которая в заголовке темы написана

Ошибка возникает при попадании вот в это условие

ЧислоПрописью(ЗапросМТС[0].ЧислоДней)

ЧислоПрописью(самолет) чему должно быть равно?

я хз.. у тебя описание ошибки отчетливо все сказано.. значение где ты получаешь ЧислоПрописью не является числом..

так сам тип у ЧислоДней — Число

ну или чтото типо того… а так-то да.. прибор-12

подсказываю: смотри в отладчике

бредишь? Число у тебя, если есть условие договора.

Число у меня в любом случае — у него Типа другого нет

А ошибка возникает наверное потому что ЗапросМТС[0].ЧислоДней равен NULL

Уверен? NULL? Не, не слышал

Это он в запросе является NULLом, а в коде 1С он равен NULL ))))

Кстати да. Тонкая разница :)

ЗапросМТС[0].ЧислоДней =  NULL ничего не поменялось

Если ЗапросМТС.ЧислоДней = 0 И ЗапросМТС.ЧислоДней = NULL Тогда Он должен попадать сюда и никуда ниже не идти

В «параме» там цифра, наверное есть?

если консолью выводить то выводит 0

вот это полный бред. С утру выпил ты что ли? Если ЗапросМТС.ЧислоДней = 0 И ЗапросМТС.ЧислоДней = NULL Тогда

как может поле одновременно быть и NULL и 0?

Да запихни все в Попытка Исключение и делов! ;)

Нет, это теория струн ))) «Слышь ты, барашка…» (С) День выборов В запросе явно укажи что: ЕСТЬNULL(ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ЧислоДней,0) КАК ЧислоДней,

Справочники.ру_УсловияДоговора.ПустаяСсылка а на что еще можно проверять ссылку?

Все, я спекся после сообщения. Пойду валерьянки попью

ну сам же знаешь Если ЗапросМТС[0].УсловияПоставки = Справочники.ру_УсловияДоговора.ПустаяСсылка И ЗапросМТС[0].УсловияПоставки = NULL Тогда

+ но всё-таки почитай про теорию струн

Все сделал — сам в одном случае напортачил, а в другом ссылку не на тот справочник проверял. Спасибо — повод выпить есть)

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
&НаСервере
функция ПечатьНаСервере() 
 
        ТабДок = Новый ТабличныйДокумент;
    Макет = Документы.Продажи.ПолучитьМакет("Макет");
    ОбластьМакета = Макет.ПолучитьОбласть("Область1");   
Запрос = Новый Запрос;
датас=началодня(Объект.датас) ;
          датапо=конецдня(Объект.датапо) ;
Запрос.УстановитьПараметр("Датас",датас);
              Запрос.УстановитьПараметр("датапо",Датапо);
ТекстЗапроса = 
                
                  "ВЫБРАТЬ
                  | Продажи.Период,
                  | Продажи.Регистратор,
                  | Продажи.Активность,
                  | Продажи.ВидДвижения,
                  | Продажи.Номенклатура,
                  | Продажи.Партнер,
                  | Продажи.Склад,
                  | Продажи.Количество,
                  | Продажи.сумма,
                  | Продажи.Номенклатура.Наименование,
                  | Продажи.Номенклатура.Комиссия,
                  | Продажи.Номенклатура.КомиссияРуб,
                  | Продажи.Номенклатура.Комиссия КАК НоменклатураКомиссия1,
                  | Продажи.Номенклатура.КомиссияРуб КАК НоменклатураКомиссияРуб1,
                  | Продажи.Регистратор.Ссылка,
                  | Продажи.Номенклатура.ЕдиницаИзмерения,
                  | Продажи.Цена
                  |ИЗ
                  | РегистрНакопления.Продажи КАК Продажи
                  |ГДЕ
                  | Продажи.Период МЕЖДУ &датас И &датапо"  ;
                //////////////////////////
              Запрос.Текст = ТекстЗапроса;       
            РезультатЗапроса = Запрос.Выполнить();
            Выборка = РезультатЗапроса.Выбрать();
////////////////////
             НомерПП = 1;
             
            ОбластьМакета = Макет.ПолучитьОбласть("заголовок");
 
ОбластьМакета.Параметры.дата = "Период с "+Лев(Строка(Датас),10)+" по "+Лев(Строка(Датапо),10); 
ОбластьМакета.Параметры.отчет = "Отчет об оказании услуг № "+Объект.Номер +" от "+Лев(Строка(объект.дата),10)  ;                                   
ТабДок.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("шапка");  ТабДок.Вывести(ОбластьМакета);
 
 
 
Пока Выборка.Следующий() Цикл
        ОбластьМакета = Макет.ПолучитьОбласть("Строка");
        ОбластьМакета.Параметры.номер = НомерПП;
        ОбластьМакета.Параметры.номенклатура = Выборка.Номенклатура.Наименование;
        ОбластьМакета.Параметры.колво = Выборка.Количество;
        ОбластьМакета.Параметры.изм = Выборка.Номенклатура.ЕдиницаИзмерения;
        ОбластьМакета.Параметры.цена = Выборка.цена;
             ОбластьМакета.Параметры.Сумма = Выборка.сумма;
             ОбластьМакета.Параметры.партнер = Выборка.партнер;
 
             попытка
                 суммакомиссии     = выборка.Номенклатура.Комиссия/100*выборка.сумма;
        ОбластьМакета.Параметры.суммакомиссии     = выборка.Номенклатура.Комиссия/100*выборка.сумма;
          ОбластьМакета.Параметры.комиссия     = Выборка.Комиссия;
        
        ОбластьМакета.Параметры.партнер     = выборка.Партнер;    Исключение    конецпопытки;
 
        
 попытка   Итог=Итог+   суммакомиссии ; Исключение конецпопытки;
             
                Итого=Итого+ Выборка.сумма;
 
        НомерПП = НомерПП + 1;
        общсумма=  общсумма+выборка.сумма;
    ТабДок.Вывести(ОбластьМакета);    
КонецЦикла;
ОбластьМакета = Макет.ПолучитьОбласть("строка2");
 ОбластьМакета.Параметры.Итого = Итого;
ОбластьМакета.Параметры.Итог = Итог;
ТабДок.Вывести(ОбластьМакета);
//////////////
 
ОбластьМакета = Макет.ПолучитьОбласть("строка3");ТабДок.Вывести(ОбластьМакета); 
 
ОбластьМакета = Макет.ПолучитьОбласть("подвал");
 
        ОбластьМакета.Параметры.проп="Всего продано наименований"+ НомерПП + ", на сумму"+итого+"RUB";
        ОбластьМакета.Параметры.пропись=ЧислоПрописью(общсумма,, "Рубль, рублей, рубля, м, копейка, копейки, копеек, ж, 2"); ;
        ОбластьМакета.Параметры.пропись1="Сумма комиссионного вознаграждения составила "+Итог;
        
        
        ТабДок.Вывести(ОбластьМакета);
        
        ТабДок .ОтображатьЗаголовки = ложь;
    ТабДок .ОтображатьСетку = ложь;
возврат табдок
    конецфункции
&НаКлиенте
Процедура Печать(Команда)
    ТабДок = ПечатьНаСервере();
    ТабДок .Показать("Отчет продажи","TN.xml");
КонецПроцедуры

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста подключитьобработчикожидания
  • Ошибка при вызове метода контекста подключиться почта
  • Ошибка при вызове метода контекста подключитьвнешнююкомпоненту
  • Ошибка при вызове метода контекста первая
  • Ошибка при вызове метода контекста печать