Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 апр 2025, 18:21

Чеки ККМ посчитать сумму всех наличных чеков за день

Автор sali, 15 ноя 2024, 09:09

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

sali

Максим75, я в этом коде хотел поставить условие и брал лишь наличные чеки и движение "внесение" они тоже учитываются. мне сказали что в движениях можно как-то сразу поставить условие на наличные, чтобы потом не делать отбор. я не пойму как это сделать

sali

Цитата: Максим75 от 18 ноя 2024, 10:23в реквизит ВКассе должна попасть ВСЯ сумма на остатке регистра.

....ВСЯ сумма на НАЛИЧНЫЙ остаток регистра

Максим75

sali,
Цитата: sali от 18 ноя 2024, 10:29
Цитата: Максим75 от 18 ноя 2024, 10:23в реквизит ВКассе должна попасть ВСЯ сумма на остатке регистра.

....ВСЯ сумма на НАЛИЧНЫЙ остаток регистра
чтобы попала на НАЛИЧНЫЙ остаток, надо как-то в запросе это указать. силой мысли запрос не работает, надо ручиками в коде писать.
код я увижу или будет только поток слов?
и заодно, регистр покажите, какие измерения у него.

sali

Максим75, так я ведь показал вам код который сумму остатка выводит
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Параметры.Свойство("КассоваяСмена", КассоваяСмена);
Параметры.Свойство("КассаККМ", КассаККМ);
Параметры.Свойство("ВидДвиженияНаличных", ВидДвиженияНаличных);

Если ВидДвиженияНаличных = Перечисления.ВидыДвиженияНаличных.Внесение Тогда
Заголовок = "Внесение";
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаВнесение;
Иначе
Заголовок = "Выемка";
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаВыемка;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДенежныеСредстваОстатки.СуммаОстаток КАК СуммаОстаток
|ИЗ
| РегистрНакопления.ДенежныеСредства.Остатки(, ) КАК ДенежныеСредстваОстатки
|ГДЕ
| ДенежныеСредстваОстатки.ТипДенежныхСредств = ЗНАЧЕНИЕ(Перечисление.ТипыОплатыККТ.Наличные)";
РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл 
//Если ВыборкаДетальныеЗаписи.ТипДенежныхСредств.Наличные Тогда
ВКассе = ВыборкаДетальныеЗаписи.СуммаОстаток;                                                   
//КонецЕсли;
КонецЦикла;
СоздатьВнесениеВыемкаДСНаСервере();

КонецЕсли;
КонецПроцедуры
и условия я прописывал в запросе и в цикле
в запросе писал
где
ДенежныеСредстваОстатки.ТипДенежныхСредств = ЗНАЧЕНИЕ(Перечисление.ТипыОплатыККТ.Наличные) или через тип/типзначения

в цикле
Если ВыборкаДетальныеЗаписи.ТипДенежныхСредств.Наличные Тогда
Если ВыборкаДетальныеЗаписи.ТипДенежныхСредств = Перечисление.ТипыОплатыККТ.Наличные Тогда



sali

Максим75, Снимок экрана (26).png
измерение типы денежных средств это перечисление типы оплаты ккт

sali

не знаю может еще это как-то поможет
код который формирует документ во время продажи/возврата/расход
&НаСервере
Функция ПробитьЧекНаСервере()
    ДокументОбъект = Документы.ЧекККМ.СоздатьДокумент();
    ДокументОбъект.Заполнить(Неопределено);
    ДокументОбъект.Дата = ТекущаяДатаСеанса();
    ДокументОбъект.КассаККМ = Объект.КассаККМ;
    ДокументОбъект.КассоваяСмена = ОписаниеКассовойСмены.КассоваяСмена;
   
    ДокументОбъект.ПризнакСпособаРасчета = Перечисления.ПризнакиСпособаРасчета.ПередачаСПолнойОплатой;
   
    ТипРасчета = Неопределено;
    Если Операция = "Продажа" Тогда
        ТипРасчета = Перечисления.ТипыРасчетаДенежнымиСредствами.ПриходДенежныхСредств;   
    ИначеЕсли Операция = "ВозвратПродажи" Тогда     
        ТипРасчета = Перечисления.ТипыРасчетаДенежнымиСредствами.ВозвратДенежныхСредств;   
    ИначеЕсли Операция = "Покупка" Тогда     
        ТипРасчета = Перечисления.ТипыРасчетаДенежнымиСредствами.РасходДенежныхСредств;   
    ИначеЕсли Операция = "ВозвратПокупки" Тогда     
        ТипРасчета = Перечисления.ТипыРасчетаДенежнымиСредствами.ВозвратРасходаДенежныхСредств;   
    КонецЕсли;   
       
    ДокументОбъект.ТипРасчета = ТипРасчета;
    ДокументОбъект.СтатусЧековККМ = Перечисления.СтатусыЧековККМ.Пробит;
   
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ТаблицаТовары.НомерСтроки КАК НомерСтроки,
        |    ТаблицаТовары.Номенклатура КАК Номенклатура,
        |    ТаблицаТовары.ПредставлениеТовара КАК ПредставлениеТовара,
        |    ТаблицаТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        |    ТаблицаТовары.Количество КАК Количество,
        |    ТаблицаТовары.Цена КАК Цена,
        |    ТаблицаТовары.Сумма КАК Сумма,
        |    ТаблицаТовары.ПроцентСкидки КАК ПроцентСкидки,
        |    ТаблицаТовары.СуммаСкидки КАК СуммаСкидки,
        |    ТаблицаТовары.Всего КАК Всего,
        |    ТаблицаТовары.СтавкаНДС КАК СтавкаНДС,
        |    ТаблицаТовары.СуммаНДС КАК СуммаНДС,
        |    ТаблицаТовары.СтавкаНСП КАК СтавкаНСП,
        |    ТаблицаТовары.СуммаНСП КАК СуммаНСП
        |ПОМЕСТИТЬ ВременнаяТаблицаТовары
        |ИЗ
        |    &ТаблицаТовары КАК ТаблицаТовары
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВременнаяТаблицаТовары.НомерСтроки КАК НомерСтроки,
        |    ВременнаяТаблицаТовары.ПредставлениеТовара КАК ПредставлениеТовара,
        |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(ВременнаяТаблицаТовары.Номенклатура) КАК НоменклатураГУИД,
        |   ВременнаяТаблицаТовары.Номенклатура КАК Номенклатура,
        |    ВременнаяТаблицаТовары.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
        |    ВременнаяТаблицаТовары.Количество КАК Количество,
        |    ВременнаяТаблицаТовары.Цена КАК Цена,
        |    ВременнаяТаблицаТовары.Сумма КАК Сумма,
        |    ВременнаяТаблицаТовары.ПроцентСкидки КАК ПроцентСкидки,
        |    ВременнаяТаблицаТовары.СуммаСкидки КАК СуммаСкидки,
        |    ВременнаяТаблицаТовары.Всего КАК Всего,
        |    ВременнаяТаблицаТовары.СтавкаНДС КАК СтавкаНДС,
        |    ВременнаяТаблицаТовары.СуммаНДС КАК СуммаНДС,
        |    ВременнаяТаблицаТовары.СтавкаНСП КАК СтавкаНСП,
        |    ВременнаяТаблицаТовары.СуммаНСП КАК СуммаНСП
        |ИЗ
        |    ВременнаяТаблицаТовары КАК ВременнаяТаблицаТовары";
    Запрос.УстановитьПараметр("ТаблицаТовары", Объект.Товары.Выгрузить());
   
    РезультатЗапроса = Запрос.Выполнить();
    ДокументОбъект.Товары.Загрузить(РезультатЗапроса.Выгрузить());
   
    Если НЕ СуммаНаличными = 0 Тогда     
        ВидОплаты = Справочники.ВидыОплат.ВидОплатыНаличные();
       
        СтрокаТабличнойЧасти = ДокументОбъект.Оплаты.Добавить();
        СтрокаТабличнойЧасти.ВидОплаты = ВидОплаты;
        СтрокаТабличнойЧасти.Сумма = СуммаНаличными;
    КонецЕсли;   
    Если НЕ СуммаБезналичными = 0 Тогда     
        ВидОплаты = Справочники.ВидыОплат.ВидОплатыБезНаличные();
       
        СтрокаТабличнойЧасти = ДокументОбъект.Оплаты.Добавить();
        СтрокаТабличнойЧасти.ВидОплаты = ВидОплаты;
        СтрокаТабличнойЧасти.Сумма = СуммаБезналичными; 
        СтрокаТабличнойЧасти.СпособОплаты = СсылкаСпособОплаты;
    КонецЕсли;   
    ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
   
    Возврат ДокументОбъект.Ссылка;
КонецФункции
он работает когда пробиваешь чекСнимок экрана (28).png

Максим75

sali, а теперь внимательно, только ОЧЕНЬ ВНИМАТЕЛЬНО пересмотрите процедуру проведения и посмотрите, что Вы пытаетесь писать в ТипДенежныхСредств, какой тип Вы туда пишите.
Из того, что Вы здесь привели - пишите нихрена не перечисление.ТипыОплатыККТ, а какой-то другой тип данных.
т.е. туда вообще в это измерение ничего не пишется.

возьмите движение самого документа ЧекККМ и посмотрите, что в этот регистр попадает.

sali

Максим75, вот кстати, говорили брать перечисление "ВидыДвиженияНаличных" вместо "ТипыОплатККТ". походу проблема в этом ?

Максим75

Цитата: sali от 18 ноя 2024, 11:07Максим75, вот кстати, говорили брать перечисление "ВидыДвиженияНаличных" вместо "ТипыОплатККТ". походу проблема в этом ?
брать надо то, что Вы в ресурсе регистра указали. Т.е. у ВСЕХ ресурсов должны совпадать типы (что в регистре и что пишется).

Кстати, а зачем Вы пытаетесь "разрезать" регистр по Типу денежных средств? смысл в этом какой? ну по наличным понятно, будет и приход и расход, а вот по остальным типам как обстоят дела? Вы хоть почитайте рекомендации (даже можно сказать требования) к регистрам накоплений. Они должны ОБНУЛЯТЬСЯ по ВСЕМ ресурсам, а у Вас будут они обнуляться хоть иногда по виду оплаты безнал? Ведь по наличке можно обнулить, просто тупо выдать все деньги, что числятся. А с другими видами оплаты как будут дела обстоять? накапливаться?

sali

Максим75, имеете ввиду тип возврат/расход/возврат расхода?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск