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

Подсчет количества проведенных документов (1С 7.7)

Автор alienz, 07 июн 2012, 17:25

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

alienz

Добрый день. Платформа 7.7 (7.70.025)
Я делаю в 1С 7.7 ИС для работы аэропортов, аэрофлота и т.п.
У меня есть справочник рейс (реквизиты - ИзГорода, ВГород, ДатаОтправки, КоличествоМест)
Есть документ Билет (реквизиты - Пассажир, ЦенаБилета, НомерБилета, Рейс)

Как мне сделать чтобы считалось количество свободных мест?
Тобишь чтобы считалось сколько всего проведенных документов на тот или иной рейс, и из Справочник.Рейс.КоличествоМест отнималось количество проведенных документов.


volodya1122

Выбирайшь документы (период указываешь например "год назад" по текущую дату.  функция Проведен() проверяешь проведен ли документ. И если проведен то ищешь в нем реквизит нужный "Рейс". Сумируешь все проданные билеты в котором есть нужный рейс (если для одного пасажира резервируется только одно место). Вот и будет количество зарезервированных билетов

alienz

Цитата: volodya1122 от 07 июн 2012, 18:27
Выбирайшь документы (период указываешь например "год назад" по текущую дату.  функция Проведен() проверяешь проведен ли документ. И если проведен то ищешь в нем реквизит нужный "Рейс". Сумируешь все проданные билеты в котором есть нужный рейс (если для одного пасажира резервируется только одно место). Вот и будет количество зарезервированных билетов

Не могли бы вы написать кодом? Я просто не очень хорошо разбираюсь в 1С.

volodya1122

Я так понял из описания задачи- это не реальный заказ, а всего лишь студенческая работа.. Для Аэрофлота это как-то мелковато.
Вот по быстрому прикинул "кодом" как это примерно должно выглядить то что я написал выше.
Хотя для реального решения то как ты придумал не годится.

КоличествоБилетов=0;
    Нужныйрейс=РеквизитДркументаНаКоторомСейчасДелаешьНовыйБилет;
  Дата1=НачГода(НачГода(ТекущаяДата())-1);// начало прошлого года
  Док=СоздатьОбъект("Документ.Билет");
Док.ВыбратьДокументы(Дата1,ТекущаяДата());
Пока Док.ПолучитьДокумент()=1 Цикл
Если Док.Проведен()=1 Тогда
  Если Док.Рейс=Нужныйрейс тогда
КоличествоБилетов=КоличествоБилетов+1;
  КонецЕсли;
   КонецЕсли;
КонецЦикла;
СвободныхМест=Нужныйрейс.КоличествоМест-КоличествоБилетов;


alienz

Да, это просто студенческая работа. Сейчас попробую, спасибо.

Теги:

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

Рейтинг@Mail.ru

Поиск