|
не найти созданный программно документ в базе | ☑ | ||
---|---|---|---|---|
0
zippygrill
11.06.13
✎
12:06
|
честное слово :) создаю программно. режим УФ. вот процедура
&НаСервере Процедура СоздатьДокументНаСервер() ОтчетОРозничныхПродажах = СоздатьОтчетОРозничныхПродажах(); //дальше идут запросы и заполнение //Записываем ОтчетОРозничныхПродажах. Если Не ОтменитьТранзакцию И (ОтчетОРозничныхПродажах.Товары.Количество() > 0 Или ОтчетОРозничныхПродажах.ВозвращенныеТовары.Количество() > 0) Тогда //Оплаты ОтчетОРозничныхПродажах.ОплатаПодарочнымиСертификатами = ОплатаПодарочнымиСертификатами; Для Каждого СтрокаОплаты Из ТаблицаОплатПлатежныеКарты Цикл НоваяСтрока = ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаОплаты); КонецЦикла; ОтчетОРозничныхПродажах.Комментарий = "программно"; //тут точка останова есть и смотрю содержимое документа. данные присутствуют! УстановитьПривилегированныйРежим(Истина); ОтчетОРозничныхПродажах.Записать(РежимЗаписиДокумента.Запись); УстановитьПривилегированныйРежим(Ложь); КонецПроцедуры; ищу в базе свой документ но его нет похоже! Где ошибся? |
|||
1
Kreont
11.06.13
✎
12:12
|
а запросом его можешь найти?
|
|||
2
Mitriy
11.06.13
✎
12:18
|
отборы в форме списка посмотри...
|
|||
3
RomanYS
11.06.13
✎
12:21
|
журнал регистрации посмотри
|
|||
4
zippygrill
11.06.13
✎
12:48
|
(1) запросом найти его не удалось
(2) отборы в форме списка нет (3) вот такая фигня в ЖР https://dl.dropboxusercontent.com/u/9627383/Screens/ЖР.jpg |
|||
5
zippygrill
11.06.13
✎
12:49
|
по скрину что это значит?
|
|||
6
YF
11.06.13
✎
12:49
|
(0) как бы СоздатьОтчетОРозничныхПродажах() ни о чем не говорит
|
|||
7
zippygrill
11.06.13
✎
12:50
|
(6)
&НаСервере // Функция осуществляет создание нового документа "Отчёт о розничных продажах". // // Параметры: // ОблагаетсяЕНВД - <Булево>, <Неопределено> // - Розничная торговля облагается ЕНВД. // // Возвращаемое значение: // <ДокументОбъект.ОтчетОРозничныхПродажах> - Созданный документ. // Функция СоздатьОтчетОРозничныхПродажах() ТекущаяДата = ТекущаяДата(); ДатаДокумента = КонецДня(Объект.ДатаДокумента); Отчет = Документы.ОтчетОРозничныхПродажах.СоздатьДокумент(); Отчет.Дата = ДатаДокумента; Отчет.КассаККМ = Объект.КассаККМ; Отчет.Магазин = Отчет.КассаККМ.Магазин; Отчет.Ответственный = Объект.Ответственный; Отчет.Организация = Объект.Организация; Отчет.УчитыватьНДС = Ложь; Отчет.ЦенаВключаетНДС = ОбщегоНазначенияРТСервер.ПолучитьЗначениеРеквизитаВПривилегированномРежиме(Отчет.Магазин.ПравилоЦенообразования, "ЦенаВключаетНДС"); Возврат Отчет; КонецФункции |
|||
8
1Сергей
11.06.13
✎
12:51
|
(5) что ты зашёл под пользователем "Булига"
|
|||
9
zippygrill
11.06.13
✎
12:51
|
и rls чтоли?
|
|||
10
1Сергей
11.06.13
✎
12:51
|
(7) и где Записать?
|
|||
11
YF
11.06.13
✎
12:52
|
(7) В той же процедуре, где создаешь документ пробовал его записывать?
|
|||
12
zippygrill
11.06.13
✎
12:52
|
(10) функция из (7) делает возврат же :)
|
|||
13
zippygrill
11.06.13
✎
12:52
|
(11) нет, не пробовал.
|
|||
14
YF
11.06.13
✎
12:53
|
(13) а попробуй
|
|||
15
1Сергей
11.06.13
✎
12:54
|
(13) а отладчик доходит до записи?
|
|||
16
zippygrill
11.06.13
✎
12:55
|
(14) пробовал, все четко.
(15) доходит конечно. сейчас всю типовую процедуру выложу. |
|||
17
ДенисЧ
11.06.13
✎
12:56
|
У меня такая ботва была...
Решили проблему - была повторная транзакция без закрытия первой... |
|||
18
zippygrill
11.06.13
✎
12:58
|
(17) похоже такая же батва и тут, потому что в коде используется это
|
|||
19
zippygrill
11.06.13
✎
12:58
|
&НаСервере
Процедура СоздатьДокументНаСервер() РежимПроведения = РежимПроведенияДокумента.Оперативный; МассивДокументовКПроведению = Новый Массив; ОтчетОРозничныхПродажах = СоздатьОтчетОРозничныхПродажах(); Возврат; ЗапросПоЧекам = Новый Запрос; ЗапросПоЧекам.УстановитьПараметр("КассаККМ", Объект.КассаККМ); ЗапросПоЧекам.УстановитьПараметр("ДатаНачала", НачалоДня(Дата('20130610'))); ЗапросПоЧекам.УстановитьПараметр("ДатаОкончания", КонецДня(Дата('20130610'))); ЗапросПоЧекам.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Док.Ссылка КАК Ссылка |ИЗ | Документ.ЧекККМ КАК Док |ГДЕ | Док.КассаККМ = &КассаККМ | И Док.Ссылка.Проведен | И Док.Ссылка.СтатусЧекаККМ = ЗНАЧЕНИЕ(Перечисление.СтатусыЧековККМ.Архивный) | И Док.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ) | |ДЛЯ ИЗМЕНЕНИЯ | Документ.ЧекККМ"; Запрос = Новый Запрос; Запрос.УстановитьПараметр("КассаККМ" , Объект.КассаККМ); Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(Дата('20130610'))); Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(Дата('20130610'))); Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ТоварыОбщие.ИспользоватьСерийныеНомера, | ТоварыОбщие.ДисконтнаяКарта, | ТоварыОбщие.Склад, | ТоварыОбщие.Номенклатура, | ТоварыОбщие.Характеристика, | ТоварыОбщие.Продавец, | ТоварыОбщие.Количество, | ТоварыОбщие.Цена, | ТоварыОбщие.СтавкаНДС, | ТоварыОбщие.СуммаНДС, | ТоварыОбщие.Сумма, | ТоварыОбщие.Упаковка, | ТоварыОбщие.КоличествоУпаковок, | ТоварыОбщие.СсылкаДляСерийныхСертификатов, | ТоварыОбщие.КлючСвязиСерийныхНомеров |ПОМЕСТИТЬ ТаблицаТовары |ИЗ | (ВЫБРАТЬ | Док.Номенклатура.ИспользоватьСерийныеНомера КАК ИспользоватьСерийныеНомера, | Док.Ссылка.ДисконтнаяКарта КАК ДисконтнаяКарта, | Док.Склад КАК Склад, | Док.Номенклатура КАК Номенклатура, | Док.Характеристика КАК Характеристика, | Док.Продавец КАК Продавец, | СУММА(ВЫБОР | КОГДА Док.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа) | ТОГДА Док.Количество | ИНАЧЕ -Док.Количество | КОНЕЦ) КАК Количество, | Док.Цена КАК Цена, | Док.СтавкаНДС КАК СтавкаНДС, | СУММА(ВЫБОР | КОГДА Док.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа) | ТОГДА Док.СуммаНДС | ИНАЧЕ -Док.СуммаНДС | КОНЕЦ) КАК СуммаНДС, | СУММА(ВЫБОР | КОГДА Док.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа) | ТОГДА Док.Сумма | ИНАЧЕ -Док.Сумма | КОНЕЦ) КАК Сумма, | Док.Упаковка КАК Упаковка, | СУММА(ВЫБОР | КОГДА Док.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа) | ТОГДА Док.КоличествоУпаковок | ИНАЧЕ -Док.КоличествоУпаковок | КОНЕЦ) КАК КоличествоУпаковок, | ВЫБОР | КОГДА Док.Номенклатура.ИспользоватьСерийныеНомера | ТОГДА Док.Ссылка | ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЧекККМ.ПустаяСсылка) | КОНЕЦ КАК СсылкаДляСерийныхСертификатов, | ВЫБОР | КОГДА Док.Номенклатура.ИспользоватьСерийныеНомера | ТОГДА Док.КлючСвязиСерийныхНомеров | ИНАЧЕ 0 | КОНЕЦ КАК КлючСвязиСерийныхНомеров | ИЗ | Документ.ЧекККМ.Товары КАК Док | ГДЕ | Док.Ссылка.КассаККМ = &КассаККМ | И Док.Ссылка.Проведен | И Док.Ссылка.СтатусЧекаККМ = ЗНАЧЕНИЕ(Перечисление.СтатусыЧековККМ.Архивный) | И Док.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ) | | СГРУППИРОВАТЬ ПО | Док.Ссылка.ДисконтнаяКарта, | Док.Склад, | Док.Номенклатура, | Док.Характеристика, | Док.Продавец, | Док.СтавкаНДС, | Док.Цена, | Док.Номенклатура.ИспользоватьСерийныеНомера, | Док.Упаковка, | ВЫБОР | КОГДА Док.Номенклатура.ИспользоватьСерийныеНомера | ТОГДА Док.Ссылка | ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЧекККМ.ПустаяСсылка) | КОНЕЦ, | ВЫБОР | КОГДА Док.Номенклатура.ИспользоватьСерийныеНомера | ТОГДА Док.КлючСвязиСерийныхНомеров | ИНАЧЕ 0 | КОНЕЦ | | ИМЕЮЩИЕ | СУММА(ВЫБОР | КОГДА Док.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа) | ТОГДА Док.Количество | ИНАЧЕ -Док.Количество | КОНЕЦ) <> 0) КАК ТоварыОбщие |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТаблицаТовары.ИспользоватьСерийныеНомера, | ТаблицаТовары.ДисконтнаяКарта, | ТаблицаТовары.Склад, | ТаблицаТовары.Номенклатура, | ТаблицаТовары.Характеристика, | ТаблицаТовары.Продавец, | СУММА(ТаблицаТовары.Количество) КАК Количество, | ТаблицаТовары.Цена, | ТаблицаТовары.СтавкаНДС, | СУММА(ТаблицаТовары.СуммаНДС) КАК СуммаНДС, | СУММА(ТаблицаТовары.Сумма) КАК Сумма, | ТаблицаТовары.Упаковка, | СУММА(ТаблицаТовары.КоличествоУпаковок) КАК КоличествоУпаковок |ИЗ | ТаблицаТовары КАК ТаблицаТовары | |СГРУППИРОВАТЬ ПО | ТаблицаТовары.Склад, | ТаблицаТовары.ДисконтнаяКарта, | ТаблицаТовары.Номенклатура, | ТаблицаТовары.Характеристика, | ТаблицаТовары.СтавкаНДС, | ТаблицаТовары.ИспользоватьСерийныеНомера, | ТаблицаТовары.Продавец, | ТаблицаТовары.Упаковка, | ТаблицаТовары.Цена |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТаблицаТовары.ИспользоватьСерийныеНомера, | ТаблицаТовары.ДисконтнаяКарта, | ТаблицаТовары.Склад, | ТаблицаТовары.Номенклатура, | ТаблицаТовары.Характеристика, | ТаблицаТовары.Продавец, | ТаблицаТовары.Количество, | ТаблицаТовары.Цена, | ТаблицаТовары.СтавкаНДС, | ТаблицаТовары.СуммаНДС, | ТаблицаТовары.Сумма, | ТаблицаТовары.Упаковка, | ТаблицаТовары.КоличествоУпаковок, | ТаблицаТовары.СсылкаДляСерийныхСертификатов, | ТаблицаТовары.КлючСвязиСерийныхНомеров |ПОМЕСТИТЬ ТаблицаСерийныхСертификатов |ИЗ | ТаблицаТовары КАК ТаблицаТовары |ГДЕ | ТаблицаТовары.ИспользоватьСерийныеНомера |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВложенныйЗапрос.СерийныйНомер, | ВложенныйЗапрос.ДисконтнаяКарта, | ВложенныйЗапрос.Склад, | ВложенныйЗапрос.Номенклатура, | ВложенныйЗапрос.Характеристика, | ВложенныйЗапрос.Продавец, | ВложенныйЗапрос.Цена, | ВложенныйЗапрос.СтавкаНДС, | ВложенныйЗапрос.Упаковка |ИЗ | (ВЫБРАТЬ | ЧекККМСерийныеНомера.СерийныйНомер КАК СерийныйНомер, | ТаблицаСерийныхСертификатов.ДисконтнаяКарта КАК ДисконтнаяКарта, | ТаблицаСерийныхСертификатов.Склад КАК Склад, | ТаблицаСерийныхСертификатов.Номенклатура КАК Номенклатура, | ТаблицаСерийныхСертификатов.Характеристика КАК Характеристика, | ТаблицаСерийныхСертификатов.Продавец КАК Продавец, | ТаблицаСерийныхСертификатов.Цена КАК Цена, | ТаблицаСерийныхСертификатов.СтавкаНДС КАК СтавкаНДС, | ТаблицаСерийныхСертификатов.Упаковка КАК Упаковка | ИЗ | ТаблицаСерийныхСертификатов КАК ТаблицаСерийныхСертификатов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЧекККМ.СерийныеНомера КАК ЧекККМСерийныеНомера | ПО ТаблицаСерийныхСертификатов.СсылкаДляСерийныхСертификатов = ЧекККМСерийныеНомера.Ссылка | И ТаблицаСерийныхСертификатов.КлючСвязиСерийныхНомеров = ЧекККМСерийныеНомера.КлючСвязиСерийныхНомеров | ГДЕ | ЧекККМСерийныеНомера.Ссылка.КассаККМ = &КассаККМ | И ЧекККМСерийныеНомера.Ссылка.Проведен | И ЧекККМСерийныеНомера.Ссылка.СтатусЧекаККМ = ЗНАЧЕНИЕ(Перечисление.СтатусыЧековККМ.Архивный) | И ЧекККМСерийныеНомера.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)) КАК ВложенныйЗапрос"; ЗапросПоВозвратам = Новый Запрос; ЗапросПоВозвратам.УстановитьПараметр("КассаККМ" , Объект.КассаККМ); ЗапросПоВозвратам.УстановитьПараметр("ВидОперацииВозврат", Перечисления.ВидыОперацийЧекККМ.Возврат); ЗапросПоВозвратам.УстановитьПараметр("ДатаНачала", НачалоДня(Дата('20130610'))); ЗапросПоВозвратам.УстановитьПараметр("ДатаОкончания", КонецДня(Дата('20130610'))); ЗапросПоВозвратам.Текст = "ВЫБРАТЬ | ТоварыБезКомплектов.ДисконтнаяКарта, | ТоварыБезКомплектов.Склад, | ТоварыБезКомплектов.Номенклатура, | ТоварыБезКомплектов.Характеристика, | ТоварыБезКомплектов.Продавец, | ТоварыБезКомплектов.Количество, | ТоварыБезКомплектов.ВидОперации, | ТоварыБезКомплектов.АналитикаХозяйственнойОперации, | ТоварыБезКомплектов.Цена, | ТоварыБезКомплектов.СтавкаНДС, | ТоварыБезКомплектов.СуммаНДС, | ТоварыБезКомплектов.Сумма, | ТоварыБезКомплектов.Упаковка, | ТоварыБезКомплектов.КоличествоУпаковок |ИЗ | (ВЫБРАТЬ | Док.Ссылка.ДисконтнаяКарта КАК ДисконтнаяКарта, | Док.Склад КАК Склад, | Док.Номенклатура КАК Номенклатура, | Док.Характеристика КАК Характеристика, | Док.Продавец КАК Продавец, | СУММА(Док.Количество) КАК Количество, | Док.Ссылка.ВидОперации КАК ВидОперации, | Док.Ссылка.АналитикаХозяйственнойОперации КАК АналитикаХозяйственнойОперации, | Док.Цена КАК Цена, | Док.СтавкаНДС КАК СтавкаНДС, | Док.СуммаНДС КАК СуммаНДС, | СУММА(Док.Сумма) КАК Сумма, | Док.Упаковка КАК Упаковка, | СУММА(Док.КоличествоУпаковок) КАК КоличествоУпаковок | ИЗ | Документ.ЧекККМ.Товары КАК Док | ГДЕ | Док.Ссылка.ВидОперации = &ВидОперацииВозврат | И Док.Ссылка.КассаККМ = &КассаККМ | И Док.Ссылка.Проведен | И Док.Ссылка.СтатусЧекаККМ = ЗНАЧЕНИЕ(Перечисление.СтатусыЧековККМ.Архивный) | И Док.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ) | | СГРУППИРОВАТЬ ПО | Док.Ссылка.ДисконтнаяКарта, | Док.Склад, | Док.Номенклатура, | Док.Характеристика, | Док.Продавец, | Док.Ссылка.ВидОперации, | Док.Ссылка.АналитикаХозяйственнойОперации, | Док.СтавкаНДС, | Док.СуммаНДС, | Док.Цена, | Док.Упаковка) КАК ТоварыБезКомплектов"; ЗапросПоОплате = Новый Запрос( "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Док.ВидОплаты.ТипОплаты КАК ТипОплаты, | Док.ВидОплаты КАК ВидОплаты, | СУММА(ВЫБОР | КОГДА Док.Ссылка.ВидОперации = &ВидОперацииПродажа | ТОГДА Док.Сумма | ИНАЧЕ -1 * Док.Сумма | КОНЕЦ) КАК Сумма, | Док.ПроцентТорговойУступки, | СУММА(ВЫБОР | КОГДА Док.Ссылка.ВидОперации = &ВидОперацииПродажа | ТОГДА Док.СуммаТорговойУступки | ИНАЧЕ -1 * Док.СуммаТорговойУступки | КОНЕЦ) КАК СуммаТорговойУступки, | Док.ЭквайринговыйТерминал |ИЗ | Документ.ЧекККМ.Оплата КАК Док |ГДЕ | Док.Ссылка.КассаККМ = &КассаККМ | И Док.Ссылка.Проведен | И Док.Ссылка.СтатусЧекаККМ = ЗНАЧЕНИЕ(Перечисление.СтатусыЧековККМ.Архивный) | И Док.ВидОплаты.ТипОплаты <> &ТипОплатыНаличные | И Док.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ) | |СГРУППИРОВАТЬ ПО | Док.Ссылка, | Док.НомерСтроки, | Док.ВидОплаты.ТипОплаты, | Док.ПроцентТорговойУступки, | Док.ВидОплаты, | Док.ЭквайринговыйТерминал"); ЗапросПоОплате.УстановитьПараметр("ДатаНачала", НачалоДня(Дата('20130610'))); ЗапросПоОплате.УстановитьПараметр("ДатаОкончания", КонецДня(Дата('20130610'))); ЗапросПоОплате.УстановитьПараметр("КассаККМ" , Объект.КассаККМ); ЗапросПоОплате.УстановитьПараметр("ВидОперацииПродажа", Перечисления.ВидыОперацийЧекККМ.Продажа); ЗапросПоОплате.УстановитьПараметр("ТипОплатыНаличные" , Перечисления.ТипыОплатЧекаККМ.Наличные); ЗапросПоПодарочнымСертификатам = Новый Запрос; ЗапросПоПодарочнымСертификатам.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ЧекККМПогашениеПодарочныхСертификатов.ПодарочныйСертификат, | ЧекККМПогашениеПодарочныхСертификатов.СерийныйНомер, | 1 КАК Количество |ПОМЕСТИТЬ ТаблицаПогашения |ИЗ | Документ.ЧекККМ.ПогашениеПодарочныхСертификатов КАК ЧекККМПогашениеПодарочныхСертификатов |ГДЕ | ЧекККМПогашениеПодарочныхСертификатов.Ссылка.КассаККМ = &КассаККМ | И ЧекККМПогашениеПодарочныхСертификатов.Ссылка.Проведен | И ЧекККМПогашениеПодарочныхСертификатов.Ссылка.СтатусЧекаККМ = ЗНАЧЕНИЕ(Перечисление.СтатусыЧековККМ.Архивный) | И ЧекККМПогашениеПодарочныхСертификатов.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ) | |СГРУППИРОВАТЬ ПО | ЧекККМПогашениеПодарочныхСертификатов.Ссылка, | ЧекККМПогашениеПодарочныхСертификатов.НомерСтроки, | ЧекККМПогашениеПодарочныхСертификатов.ПодарочныйСертификат, | ЧекККМПогашениеПодарочныхСертификатов.СерийныйНомер |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТаблицаПогашения.ПодарочныйСертификат, | ТаблицаПогашения.СерийныйНомер, | СУММА(ТаблицаПогашения.Количество) КАК Количество |ИЗ | ТаблицаПогашения КАК ТаблицаПогашения | |СГРУППИРОВАТЬ ПО | ТаблицаПогашения.ПодарочныйСертификат, | ТаблицаПогашения.СерийныйНомер"; ЗапросПоПодарочнымСертификатам.УстановитьПараметр("ДатаНачала", НачалоДня(Дата('20130610'))); ЗапросПоПодарочнымСертификатам.УстановитьПараметр("ДатаОкончания", КонецДня(Дата('20130610'))); ЗапросПоПодарочнымСертификатам.УстановитьПараметр("КассаККМ", Объект.КассаККМ); ЗапросПоОтложеннымЧекам = Новый Запрос(" |ВЫБРАТЬ РАЗРЕШЕННЫЕ | Док.Ссылка КАК ОтложенныйЧек |ИЗ | Документ.ЧекККМ КАК Док |ГДЕ | Док.КассаККМ = &КассаККМ | И Док.Ссылка.СтатусЧекаККМ = ЗНАЧЕНИЕ(Перечисление.СтатусыЧековККМ.Отложенный)"); ЗапросПоОтложеннымЧекам.УстановитьПараметр("КассаККМ" , Объект.КассаККМ); ЗапросПоПодаркам = Новый Запрос( "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Док.Номенклатура, | Док.Характеристика, | СУММА(ВЫБОР | КОГДА Док.Ссылка.ВидОперации = &ВидОперацииПродажа | ТОГДА Док.Количество | ИНАЧЕ -1 * Док.Количество | КОНЕЦ) КАК Количество, | Док.Склад КАК Склад, | Док.Цена КАК Цена, | СУММА(ВЫБОР | КОГДА Док.Ссылка.ВидОперации = &ВидОперацииПродажа | ТОГДА Док.Сумма | ИНАЧЕ -1 * Док.Сумма | КОНЕЦ) КАК Сумма, | Док.Упаковка, | СУММА(ВЫБОР | КОГДА Док.Ссылка.ВидОперации = &ВидОперацииПродажа | ТОГДА Док.КоличествоУпаковок | ИНАЧЕ -1 * Док.КоличествоУпаковок | КОНЕЦ) КАК КоличествоУпаковок |ИЗ | Документ.ЧекККМ.Подарки КАК Док |ГДЕ | Док.Ссылка.КассаККМ = &КассаККМ | И Док.Ссылка.Проведен | И Док.Ссылка.СтатусЧекаККМ = ЗНАЧЕНИЕ(Перечисление.СтатусыЧековККМ.Архивный) | И Док.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ) | |СГРУППИРОВАТЬ ПО | Док.Номенклатура, | Док.Характеристика, | Док.Склад, | Док.Цена, | Док.Упаковка | |ИМЕЮЩИЕ | СУММА(ВЫБОР | КОГДА Док.Ссылка.ВидОперации = &ВидОперацииПродажа | ТОГДА Док.Количество | ИНАЧЕ -1 * Док.Количество | КОНЕЦ) <> 0 |ИТОГИ ПО | Склад"); ЗапросПоПодаркам.УстановитьПараметр("ДатаНачала", НачалоДня(Дата('20130610'))); ЗапросПоПодаркам.УстановитьПараметр("ДатаОкончания", КонецДня(Дата('20130610'))); ЗапросПоПодаркам.УстановитьПараметр("КассаККМ" , Объект.КассаККМ); ЗапросПоПодаркам.УстановитьПараметр("ВидОперацииПродажа", Перечисления.ВидыОперацийЧекККМ.Продажа); ЗапросПоСериям = Новый Запрос; ЗапросПоСериям.УстановитьПараметр("КассаККМ", Объект.КассаККМ); ЗапросПоСериям.УстановитьПараметр("ДатаНачала", НачалоДня(Дата('20130610'))); ЗапросПоСериям.УстановитьПараметр("ДатаОкончания", КонецДня(Дата('20130610'))); ЗапросПоСериям.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Док.Ссылка КАК Ссылка, | Док.ВидОперации |ПОМЕСТИТЬ ТаблицаЧеков |ИЗ | Документ.ЧекККМ КАК Док |ГДЕ | Док.КассаККМ = &КассаККМ | И Док.Ссылка.Проведен | И Док.Ссылка.СтатусЧекаККМ = ЗНАЧЕНИЕ(Перечисление.СтатусыЧековККМ.Архивный) | И Док.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЧекККМСерии.Серия, | СУММА(ВЫБОР | КОГДА ТаблицаЧеков.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа) | ТОГДА ЧекККМСерии.Количество | ИНАЧЕ -ЧекККМСерии.Количество | КОНЕЦ) КАК Количество, | ЧекККМСерии.Номенклатура, | ЧекККМСерии.Характеристика |ИЗ | Документ.ЧекККМ.Серии КАК ЧекККМСерии | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаЧеков КАК ТаблицаЧеков | ПО ЧекККМСерии.Ссылка = ТаблицаЧеков.Ссылка | |СГРУППИРОВАТЬ ПО | ЧекККМСерии.Серия, | ЧекККМСерии.Номенклатура, | ЧекККМСерии.Характеристика | |ИМЕЮЩИЕ | СУММА(ВЫБОР | КОГДА ТаблицаЧеков.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа) | ТОГДА ЧекККМСерии.Количество | ИНАЧЕ -ЧекККМСерии.Количество | КОНЕЦ) > 0"; ОтменитьТранзакцию = Ложь; НачатьТранзакцию(); РезультатЗапросаПоЧекам = ЗапросПоЧекам.Выполнить(); МассивРезультатовЗапроса = Запрос.ВыполнитьПакет(); РезультатЗапросаПоВозвратам = ЗапросПоВозвратам.Выполнить(); РезультатЗапросаПоОплате = ЗапросПоОплате.Выполнить(); РезультатЗапросаПоОтложеннымЧекам = ЗапросПоОтложеннымЧекам.Выполнить(); РезультатЗапросаПоПодаркам = ЗапросПоПодаркам.Выполнить(); РезультатЗапросаПоСериям = ЗапросПоСериям.Выполнить(); РезультатПодарочныеСертификаты = ЗапросПоПодарочнымСертификатам.Выполнить(); ТаблицаОплатПлатежныеКарты = ОбщегоНазначенияРТ.ОтобратьСтрокиПоКритериям(РезультатЗапросаПоОплате, Новый Структура("ТипОплаты", Перечисления.ТипыОплатЧекаККМ.ПлатежнаяКарта)).Выгрузить(); ТаблицаОплатБанковскиеКредиты = ОбщегоНазначенияРТ.ОтобратьСтрокиПоКритериям(РезультатЗапросаПоОплате, Новый Структура("ТипОплаты", Перечисления.ТипыОплатЧекаККМ.БанковскийКредит)).Выгрузить(); ТаблицаОплатСертификатом = ОбщегоНазначенияРТ.ОтобратьСтрокиПоКритериям(РезультатЗапросаПоОплате, Новый Структура("ВидОплаты", Справочники.ВидыОплатЧекаККМ.ОплатаПодарочнымСертификатом)).Выгрузить(); ОплатаПодарочнымиСертификатами = ТаблицаОплатСертификатом.Итог("Сумма"); Если МассивРезультатовЗапроса[1].Пустой() И РезультатЗапросаПоВозвратам.Пустой() Тогда ОтменитьТранзакцию = Истина; Текст = НСтр("ru = 'За кассовую смену не продано ни одного товара по выбранной кассе ККМ.'"); ОбщегоНазначенияКлиентСервер.СообщитьПользователю( Текст, Объект); ОтменитьТранзакцию(); Иначе ТаблицаСерийныеНомера = МассивРезультатовЗапроса[3].Выгрузить(); КэшированныеЗначения = Новый Структура; СтруктураЗаполненияЦены = Новый Структура; СтруктураЗаполненияЦены.Вставить("ЦенаВключаетНДС", ОтчетОРозничныхПродажах.ЦенаВключаетНДС); СтруктураДействий = Новый Структура; СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураЗаполненияЦены); ТекущийКлючСерийныеСертификатов = 0; Выборка = МассивРезультатовЗапроса[1].Выбрать(); Пока Выборка.Следующий() Цикл Если Не ОтменитьТранзакцию Тогда СтрокаТабличнойЧасти = ОтчетОРозничныхПродажах.Товары.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаТабличнойЧасти, Выборка); ОбработкаТабличнойЧастиТоварыСервер.ПересчитатьСуммуНДСВСтрокеТЧСервер(СтрокаТабличнойЧасти, СтруктураДействий, КэшированныеЗначения); Если СтрокаТабличнойЧасти.СтавкаНДС <> Перечисления.СтавкиНДС.БезНДС Тогда ОтчетОРозничныхПродажах.УчитыватьНДС = Истина; КонецЕсли; Если Выборка.ИспользоватьСерийныеНомера Тогда СтруктраПоиска = Новый Структура; СтруктраПоиска.Вставить("ДисконтнаяКарта", Выборка.ДисконтнаяКарта); СтруктраПоиска.Вставить("Склад" , Выборка.Склад); СтруктраПоиска.Вставить("Номенклатура" , Выборка.Номенклатура); СтруктраПоиска.Вставить("Характеристика" , Выборка.Характеристика); СтруктраПоиска.Вставить("Продавец" , Выборка.Продавец); СтруктраПоиска.Вставить("Цена" , Выборка.Цена); СтруктраПоиска.Вставить("СтавкаНДС" , Выборка.СтавкаНДС); СтруктраПоиска.Вставить("Упаковка" , Выборка.Упаковка); ТекущийКлючСерийныеСертификатов = ТекущийКлючСерийныеСертификатов + 1; СтрокаТабличнойЧасти.КлючСвязиСерийныхНомеров = ТекущийКлючСерийныеСертификатов; СтрокиТаблицаСерийныхНомеров = ТаблицаСерийныеНомера.НайтиСтроки(СтруктраПоиска); Для каждого СтрокаТаблицыСерийныхНомеров Из СтрокиТаблицаСерийныхНомеров Цикл СтрокаСерийныхНомеров = ОтчетОРозничныхПродажах.СерийныеНомера.Добавить(); СтрокаСерийныхНомеров.СерийныйНомер = СтрокаТаблицыСерийныхНомеров.СерийныйНомер; СтрокаСерийныхНомеров.КлючСвязиСерийныхНомеров = СтрокаТабличнойЧасти.КлючСвязиСерийныхНомеров; КонецЦикла; КонецЕсли; КонецЕсли; КонецЦикла; ВыборкаПоВозвратам = РезультатЗапросаПоВозвратам.Выбрать(); Пока ВыборкаПоВозвратам.Следующий() Цикл Если Не ОтменитьТранзакцию Тогда СтрокаТабличнойЧасти = ОтчетОРозничныхПродажах.ВозвращенныеТовары.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаТабличнойЧасти, ВыборкаПоВозвратам); ОбработкаТабличнойЧастиТоварыСервер.ПересчитатьСуммуНДСВСтрокеТЧСервер(СтрокаТабличнойЧасти, СтруктураДействий, КэшированныеЗначения); КонецЕсли; КонецЦикла; Если Не ОтменитьТранзакцию И (ОтчетОРозничныхПродажах.Товары.Количество() > 0) Тогда ТаблицаПоСериям = РезультатЗапросаПоСериям.Выгрузить(); ОтчетОРозничныхПродажах.Серии.Загрузить(ТаблицаПоСериям); ПараметрыУказанияСерий = Новый ФиксированнаяСтруктура(Документы.ОтчетОРозничныхПродажах.ПараметрыУказанияСерий(Объект)); ОбработкаТабличнойЧастиТоварыСервер.ЗаполнитьСтатусыУказанияСерий(ОтчетОРозничныхПродажах,ПараметрыУказанияСерий); КонецЕсли; //Записываем ОтчетОРозничныхПродажах. Если Не ОтменитьТранзакцию И (ОтчетОРозничныхПродажах.Товары.Количество() > 0 Или ОтчетОРозничныхПродажах.ВозвращенныеТовары.Количество() > 0) Тогда //Оплаты ОтчетОРозничныхПродажах.ОплатаПодарочнымиСертификатами = ОплатаПодарочнымиСертификатами; Для Каждого СтрокаОплаты Из ТаблицаОплатПлатежныеКарты Цикл НоваяСтрока = ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаОплаты); КонецЦикла; ОтчетОРозничныхПродажах.Комментарий = "программно"; УстановитьПривилегированныйРежим(Истина); ОтчетОРозничныхПродажах.Записать(РежимЗаписиДокумента.Запись); УстановитьПривилегированныйРежим(Ложь); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
20
zippygrill
11.06.13
✎
13:01
|
в (19) забыл комментировать Возврат
|
|||
21
zippygrill
11.06.13
✎
13:02
|
нда, добавил ЗафиксироватьТранзакцию() и документ появился.
спс человеку который СП торгует :) |
|||
22
Maxus43
11.06.13
✎
13:05
|
дак написано же ОТМЕНЕНА транзакция, есно ничего не записано
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |