Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 5, свеженьких 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запрос к остаткам финансов          
kayfatuch Подменю пользователя
сообщение 20.02.25, 0:22
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 43
Из: Кривой Рог
Спасибо сказали: 2 раз
Рейтинг: 2

Доброго времени суток, у меня 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"));
        Иначе
            Сообщить("Нет данных за сегодня.");
        КонецЕсли;
    КонецЕсли;
    
    // Записываем документ
    Накладная.Записать();
КонецПроцедуры

Vofka Подменю пользователя
сообщение 20.02.25, 8:54
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14033
Из: Киев
Спасибо сказали: 4587 раз
Рейтинг: 3718.5

Цитата(kayfatuch @ 20.02.25, 0:22) *
остаток денег на конец дня


Цитата(kayfatuch @ 20.02.25, 0:22) *
|И Дата >= " + Формат(ТекДата, "ДФ='yyyy-MM-dd'") + "
|И Дата <= " + Формат(ТекДата, "ДФ='yyyy-MM-dd'") + "


Формат yyyy-MM-dd - это дата вида год-месяц-день, начало дня. Вы выбираете данные из регистра на момент времени условно 20.02.2025 00:00:00. Но другой момент еще в том, что если вам нужен остаток, то выбирайте данные из виртуальной таблицы Остатков регистра. Ну и на конец дня, а не на начало.

tibank Подменю пользователя
сообщение 20.02.25, 9:59
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 12
Спасибо сказали: 3 раз
Рейтинг: 3

kayfatuch @ Сегодня, 0:22 * ,
Текст запроса похож на восьмерочный

По идее, должно быть что-то типа
ТекстЗапроса =     "
|ПЕРИОД С Дата2 По Дата2;
|Фирма      =Регистр.Деньги.Фирма;
|Счет      =Регистр.Деньги.Счет;
|Сумма      =Регистр.Деньги.Сумма;
|Функция КонОст = КонОст(Сумма);
|Группировка Счет;
|";

Спасибо сказали: kayfatuch,

denis84 Подменю пользователя
сообщение 20.02.25, 11:44
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 477
Из: Украина
Спасибо сказали: 158 раз
Рейтинг: 160.1

kayfatuch @ Сегодня, 0:22 * ,
запрос у Вас не для 1с 7.7! В предыдущем сообщении добрый человек Вам уже написал приблезительный запрос, как это должно быть.

kayfatuch Подменю пользователя
сообщение 20.02.25, 17:36
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 43
Из: Кривой Рог
Спасибо сказали: 2 раз
Рейтинг: 2

denis84 @ Сегодня, 11:44 * ,
Я увидел что ошибся. Как я уже писал(может не совсем корректно) это все ещё тестовый код и я пытался к нему подступить по разному иза разные варианты так как выборку сделать по всем счетам не так сложно оказалось как по одному конкретному(

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 26.03.25, 22:37
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!