Доброго времени суток, у меня 1С 7,70,048 Торговля с клад для Украины. Встал такой вопрос что есть у нас счёт(который ведётся не совсем правильно но с этим я уже поделать не могу) в котором отображаются траты и поступления по треминалу банковском. Стоит задача в 1с ежедневно в конце дня проводить расходку на фиксированный процент что бы наш счёт совпадал с банковским. На данный момент я написал вот такую обработку(да местами кривую но она ещ1 в процессе доработки) и сложность возникла в том что я не могу получить остаток денег на конец дня на определённом счету. Помогите пожалуйста разобраться где я в запросе допустил ошибку или быть может можно это сделать по другому. Всем спасибо за дельные советы
//*******************************************
Процедура Выполнить()
Накладная = СоздатьОбъект("Документ.РасходныйКассовый");
Накладная.Новый();
ДатаДок = РабочаяДата(Контекст, "Запись");
// Получаем текущую дату заранее
ТекДата = ТекущаяДата();
// Устанавливаем фирму
спрФирма = СоздатьОбъект("Справочник.Фирмы");
спрФирма.НайтиПоКоду(2, 0);
Если спрФирма.Код <> 0 Тогда
Накладная.Фирма = спрФирма.ТекущийЭлемент();
Иначе
Сообщить("Фирма с кодом 2 не найдена.");
КонецЕсли;
// Устанавливаем кассу
спрКасса = СоздатьОбъект("Справочник.НашиДенежныеСчета");
спрКасса.НайтиПоКоду(24, 0);
Если спрКасса.Код <> 0 Тогда
Накладная.РСчет = спрКасса.ТекущийЭлемент();
Иначе
Сообщить("Касса с кодом 24 не найдена.");
КонецЕсли;
// Поиск контрагента по наименованию из файла
спрКонтрагент = СоздатьОбъект("Справочник.Контрагенты");
спрКонтрагент.НайтиПоНаименованию("тут должна быть ваша реклама", 0, 1);
Если спрКонтрагент.Код <> 0 Тогда
Накладная.Контрагент = спрКонтрагент.ТекущийЭлемент();
Накладная.СуммаСНДС = 5000; //вот здесь вместо фиксированной суммы должно итогово быть результат вычета процента из остатка
Накладная.СтавкаНДС = "безНДС";
Накладная.Дата_курса = ТекущаяДата();
Накладная.Курс = "1";
// Устанавливаем валюту
Курс = СоздатьОбъект("Справочник.Валюты");
Курс.НайтиПоНаименованию("Гривня");
Накладная.Валюта = Курс.ТекущийЭлемент();
// Выполняем запрос на поступления
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"
|ВЫБРАТЬ СУММА(Сумма) КАК Поступления
|ИЗ Регистр.Деньги
|ГДЕ Счет = 24
|И Дата >= " + Формат(ТекДата, "ДФ='yyyy-MM-dd'") + "
|И Дата <= " + Формат(ТекДата, "ДФ='yyyy-MM-dd'") + "
|";
Если Запрос.Выполнить(ТекстЗапроса) <> 0 Тогда
Запрос.Выбрать();
Пока Запрос.Получить() = 1 Цикл
СуммаПоступлений = Запрос.Поступления;
КонецЦикла;
Сообщить("Поступления на счёт 24 за сегодня: " + Формат(СуммаПоступлений, "ЧДЦ=2"));
Иначе
Сообщить("Нет данных за сегодня.");
КонецЕсли;
КонецЕсли;
// Записываем документ
Накладная.Записать();
КонецПроцедуры
|И Дата >= " + Формат(ТекДата, "ДФ='yyyy-MM-dd'") + "
|И Дата <= " + Формат(ТекДата, "ДФ='yyyy-MM-dd'") + "
kayfatuch @ Сегодня, 0:22
,
Текст запроса похож на восьмерочный
По идее, должно быть что-то типа
ТекстЗапроса = "
|ПЕРИОД С Дата2 По Дата2;
|Фирма =Регистр.Деньги.Фирма;
|Счет =Регистр.Деньги.Счет;
|Сумма =Регистр.Деньги.Сумма;
|Функция КонОст = КонОст(Сумма);
|Группировка Счет;
|";
kayfatuch @ Сегодня, 0:22
,
запрос у Вас не для 1с 7.7! В предыдущем сообщении добрый человек Вам уже написал приблезительный запрос, как это должно быть.
denis84 @ Сегодня, 11:44
,
Я увидел что ошибся. Как я уже писал(может не совсем корректно) это все ещё тестовый код и я пытался к нему подступить по разному иза разные варианты так как выборку сделать по всем счетам не так сложно оказалось как по одному конкретному(
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua