Смертник
24.04.13
✎
10:47
ВЫБРАТЬ
ЗаказыПоставщикамОстатки.Цена,
ЗаказыПоставщикамОстатки.Номенклатура,
ру_УсловияДоговораГрузоотправителиГрузополучатели.Грузополучатель КАК Грузополучатель,
ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.УсловияПоставки КАК УсловияПоставки,
ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ЧерезФилиал,
ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ЧислоДней КАК ЧислоДней,
ру_УсловияПоставки.СпособДоставки КАК СпособПоставки,
ЗаказыПоставщикамОстатки.КоличествоОстаток КАК Количество,
ЗаказыПоставщикамОстатки.СуммаВзаиморасчетовОстаток КАК Сумма,
ЗаказыПоставщикамОстатки.СтавкаНДС,
ЗаказыПоставщикамОстатки.ЗаказПоставщику.УчитыватьНДС КАК УчитыватьНДС,
ЗаказыПоставщикамОстатки.СуммаВзаиморасчетовОстаток — ЗаказыПоставщикамОстатки.КоличествоОстаток * ЗаказыПоставщикамОстатки.Цена КАК СуммаНДС,
ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ЧерезФилиал.Ссылка КАК Покупатель,
ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ЧерезФилиал.НаименованиеПолное КАК НаименованиеПолное,
ру_УсловияПоставки.СрокПоставки,
бит_ЦФО_Организаций.Организация КАК Организация,
ру_УсловияПоставки.ФормаПриложенияКДоговору КАК ФормаПриложенияКДоговору,
ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ФормулировкаУсловийПоставки
ИЗ
РегистрНакопления.ЗаказыПоставщикам.Остатки(, ЗаказПоставщику = &ТекущийДокумент) КАК ЗаказыПоставщикамОстатки
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ру_УсловияДоговора.ГрузоотправителиГрузополучатели КАК ру_УсловияДоговораГрузоотправителиГрузополучатели
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ру_УсловияПоставки КАК ру_УсловияПоставки
ПО ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.УсловияПоставки = ру_УсловияПоставки.Ссылка
ПО ЗаказыПоставщикамОстатки.ДоговорКонтрагента = ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.Владелец
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.бит_ЦФО_Организаций КАК бит_ЦФО_Организаций
ПО ЗаказыПоставщикамОстатки.ЗаказПоставщику.Подразделение = бит_ЦФО_Организаций.ЦФО
При выполнении этого запроса в Консоли запросов все выдается хорошо, но при следущем условиях выхзывается ошибка которая в заголовке темы написана
Если ЗапросМТС[0].УсловияПоставки = Справочники.ру_УсловияДоговора.ПустаяСсылка() Тогда
ОбластьМакета = Макет.ПолучитьОбласть(«П41»);
Если ЗапросМТС[0].ЧислоДней = 0 И ЗапросМТС[0].ЧислоДней = Неопределено Тогда
Сообщить(«Не заполнен реквизит Число дней элемента справочника Обязательства по оплате «);
ОбластьМакета.Параметры.ЧислоДней = «»;
ОбластьМакета.Параметры.ЧислоДнейПрописью = «»;
Иначе
ОбластьМакета.Параметры.ЧислоДней = ЗапросМТС[0].ЧислоДней;
ОбластьМакета.Параметры.ЧислоДнейПрописью = ЧислоПрописью(ЗапросМТС[0].ЧислоДней, «», «»);
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть(«П42»);
ТабДокумент.Вывести(ОбластьМакета);
Иначе
ОбластьМакета = Макет.ПолучитьОбласть(«П41»);
Если ЗапросМТС[0].ЧислоДней = 0 Тогда
Сообщить(«Не заполнен реквизит Число дней элемента справочника Обязательства по оплате «);
ОбластьМакета.Параметры.ЧислоДней = «»;
ОбластьМакета.Параметры.ЧислоДнейПрописью = «»;
Иначе
ОбластьМакета.Параметры.ЧислоДней = ЗапросМТС[0].ЧислоДней;
ОбластьМакета.Параметры.ЧислоДнейПрописью = ЧислоПрописью(ЗапросМТС[0].ЧислоДней, ,);
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
Смертник
24.04.13
✎
10:48
Ошибка возникает при попадании вот в это условие
Если ЗапросМТС[0].УсловияПоставки = Справочники.ру_УсловияДоговора.ПустаяСсылка() Тогда
qeos
24.04.13
✎
10:49
разрешаю
Смертник
24.04.13
✎
10:49
кого разрешаешь?
Галахад
24.04.13
✎
10:51
ЧислоПрописью(ЗапросМТС[0].ЧислоДней)
Defender aka LINN
24.04.13
✎
10:52
ЧислоПрописью(самолет) чему должно быть равно?
qeos
24.04.13
✎
10:52
(3) я хз.. у тебя описание ошибки отчетливо все сказано.. значение где ты получаешь ЧислоПрописью не является числом..
Смертник
24.04.13
✎
10:53
так сам тип у ЧислоДней — Число
qeos
24.04.13
✎
10:53
ну или чтото типо того…
а так-то да.. прибор-12
qeos
24.04.13
✎
10:53
подсказываю: смотри в отладчике
hhhh
24.04.13
✎
10:54
(7) бредишь? Число у тебя, если есть условие договора.
Defender aka LINN
24.04.13
✎
10:54
(7) Врешь
Смертник
24.04.13
✎
10:56
Число у меня в любом случае — у него Типа другого нет
cw014
24.04.13
✎
10:56
А ошибка возникает наверное потому что ЗапросМТС[0].ЧислоДней равен NULL
cw014
24.04.13
✎
10:56
(12) Уверен? NULL? Не, не слышал
Defender aka LINN
24.04.13
✎
10:56
(12) ВРЕШЬ
Wobland
24.04.13
✎
10:57
(13) является нуллом
cw014
24.04.13
✎
10:58
(16) Это он в запросе является NULLом, а в коде 1С он равен NULL ))))
Defender aka LINN
24.04.13
✎
11:00
(17) Кстати да. Тонкая разница
Смертник
24.04.13
✎
11:02
ЗапросМТС[0].ЧислоДней = NULL ничего не поменялось
qeos
24.04.13
✎
11:04
Смертник
24.04.13
✎
11:04
Если ЗапросМТС.ЧислоДней = 0 И ЗапросМТС.ЧислоДней = NULL Тогда
Сообщить(«Не заполнен реквизит Число дней элемента справочника Обязательства по оплате «);
ОбластьМакета.Параметры.ЧислоДней = «»;
ОбластьМакета.Параметры.ЧислоДнейПрописью = «»;
Он должен попадать сюда и никуда ниже не идти
Галахад
24.04.13
✎
11:04
В (0) «параме» там цифра, наверное есть?
Defender aka LINN
24.04.13
✎
11:05
(19) рукалицо…
Смертник
24.04.13
✎
11:09
если консолью выводить то выводит 0
hhhh
24.04.13
✎
11:11
(24) вот это полный бред. С утру выпил ты что ли?
Если ЗапросМТС.ЧислоДней = 0 И ЗапросМТС.ЧислоДней = NULL Тогда
hhhh
24.04.13
✎
11:12
как может поле одновременно быть и NULL и 0?
НЕА123
24.04.13
✎
11:13
(26) это квантовая теория.
GROOVY
24.04.13
✎
11:14
Да запихни все в Попытка Исключение и делов!
cw014
24.04.13
✎
11:21
(27) Нет, это теория струн )))
(21) «Слышь ты, барашка…» (С) День выборов
В запросе явно укажи что:
ЕСТЬNULL(ру_УсловияДоговораГрузоотправителиГрузополучатели.Ссылка.ЧислоДней,0) КАК ЧислоДней,
Смертник
24.04.13
✎
11:27
Справочники.ру_УсловияДоговора.ПустаяСсылка() а на что еще можно проверять ссылку?
cw014
24.04.13
✎
11:31
Все, я спекся после (30) сообщения. Пойду валерьянки попью
qeos
24.04.13
✎
11:33
(28)
Процедура ПриНачалеРаботыСистемы()
Попытка
КонецПроцедуры
Процедура ПриЗавершенииРаботыСистемы()
Исключение
// все ок
КонецПопытки;
КонецПроцедуры
hhhh
24.04.13
✎
11:33
(30) ну сам же знаешь
Если ЗапросМТС[0].УсловияПоставки = Справочники.ру_УсловияДоговора.ПустаяСсылка() И ЗапросМТС[0].УсловияПоставки = NULL Тогда
hhhh
24.04.13
✎
11:35
(33)+ но всё-таки почитай про теорию струн
cw014
24.04.13
✎
11:35
(33) ЭТО ЧТО?????
hhhh
24.04.13
✎
11:38
(35) ну, симбиоз (1) и (21).
Смертник
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;
Хах, ну так-то да
Цитата: 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"); КонецПроцедуры |