Добавляем напоминание при загрузке программы

Сегодня мы рассмотрим такую задачу:
Как сделать что бы этот документ(Заявка на поставку) не потерялся в куче других. Заявок много и сроки получения у всех разные. Может есть способ поставить напоминание или что то такое?
Можно создать простой отчет, в котором будут отражаться заявки покупателя, еще не исполненные (т.е. по которым не было отгрузки) и в которых дата отгрузки стоит сегодняшним днем.  Можно так же этот отчет разнообразить и отдельно выводить заявки на сегодня и заявки на ближайшие 3-5 дней.. Кроме того, что этот отчет будет виден в отчетах, его можно поставить при загрузке программы - пользователь открывает программу и сразу же формируется отчет..
Увы, в рамках данного  блога расписывать как "нарисовать" отчет довольно затруднительно, а потому рассмотри самый простой вариант - поставим самое простое напоминание при загрузке программы.

ВАЖНО! 
Обязательно сохраняем нашу базу!!! Как это сделать смотрим тут: Сохраняем базу 1С 7.7.

Открываем программу в режиме "Конфигуратор" (это если закрыли ее после сохранения)

Если конфигурация не открылась - открываем:




На самой первой строчке "Торговля+Склад, редакция 9.2" щелкаем правой клавишей мыши - открывается меню, где выбираем "Глобальный модуль"

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


Нажимаем кнопку "Перейти" и попадаем в начало нужной нам процедуры. Перейдем в конец процедуры - спускаемся до слов : КонецПроцедуры  //ПриНачалеРаботыСистемы(). Здесь размещаем такой код:

//напомнить про заявки
Напомнить="";
Сегодня=РабочаяДата();
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса=
"//{{ЗАПРОС(Заявки)
|ЗаявкаПокупателя = Документ.ЗаявкаПокупателя.ТекущийДокумент;
|ДатаОтгрузки = Документ.ЗаявкаПокупателя.ДатаОтгрузки;
|Группировка ЗаявкаПокупателя;
|Условие(ДатаОтгрузки=Сегодня);
 |Без итогов;
|";
//}}ЗАПРОС
    Если Запрос.Выполнить(ТекстЗапроса) <> 0 Тогда   
Напомнить=Напомнить+"На "+Сегодня+" к отгрузке :"+РазделительСтрок+РазделительСтрок;
Пока Запрос.Группировка()=1 цикл 
 Напомнить=Напомнить+Запрос.ЗаявкаПокупателя+" - "+СокрЛП(Запрос.ЗаявкаПокупателя.Контрагент)+РазделительСтрок;
КонецЦикла;
КонецЕсли;
    Если Напомнить<>""  Тогда
         Предупреждение(Напомнить);
    КонецЕсли;



На картинке не хватает одной строчки, а именно -  |Без итогов; - поэтому, смотрите код выше..
Что делает этот код? Он выбирает проведенные заявки покупателя с отгрузкой на текущую дату (но тут нет проверки была ли уже отгрузка по этой заявке) и сообщает о них. Нажимаем F11 (или просто закрываем конфигуратор, сохраняя наши изменения и открываем базу в режиме "Предприятие") 
Вот как наше напоминание выглядит при загрузке программы:





5 коммент.:

Андрей Бабакин комментирует...

Марина большое спасибо! Все получилось!
А на 1-3 дня вперед чтобы предупреждал этим способом можно вывести?

Marina Shulakova комментирует...

Анедрей, замените весь код, что написан в посте на этот

Напомнить="";
Сегодня=РабочаяДата();
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса=
"//{{ЗАПРОС(Заявки)
|ЗаявкаПокупателя = Документ.ЗаявкаПокупателя.ТекущийДокумент;
|ДатаОтгрузки = Документ.ЗаявкаПокупателя.ДатаОтгрузки;
|Группировка ЗаявкаПокупателя;
|Условие(ДатаОтгрузки=Сегодня);
|Без итогов;
|"
//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) <> 0 Тогда
Напомнить=Напомнить+"На "+Сегодня+" к отгрузке :"+РазделительСтрок+РазделительСтрок;
Пока Запрос.Группировка()=1 цикл
Напомнить=Напомнить+Запрос.ЗаявкаПокупателя+" - "+СокрЛП(Запрос.ЗаявкаПокупателя.Контрагент)+РазделительСтрок;
КонецЦикла;
КонецЕсли;

ТриДня=РабочаяДата()+3;
Запрос1=СоздатьОбъект("Запрос");
ТекстЗапроса=
"//{{ЗАПРОС(Заявки1)
|ЗаявкаПокупателя = Документ.ЗаявкаПокупателя.ТекущийДокумент;
|ДатаОтгрузки = Документ.ЗаявкаПокупателя.ДатаОтгрузки;
|Группировка ЗаявкаПокупателя;
|Условие(ДатаОтгрузки > Сегодня);
|Условие(ДатаОтгрузки <= ТриДня);
|Без итогов;
|"//}}ЗАПРОС
;
Если Запрос1.Выполнить(ТекстЗапроса) <> 0 Тогда
Напомнить=Напомнить+РазделительСтрок+"Далее к отгрузке :"+РазделительСтрок+РазделительСтрок;
Пока Запрос1.Группировка()=1 цикл
Напомнить=Напомнить+Запрос1.ДатаОтгрузки+" "+Запрос1.ЗаявкаПокупателя+" - "+СокрЛП(Запрос1.ЗаявкаПокупателя.Контрагент)+РазделительСтрок;
КонецЦикла;
КонецЕсли;

Если Напомнить<>"" Тогда
Предупреждение(Напомнить);
КонецЕсли;

Marina Shulakova комментирует...

Здесь добавлен второй запрос, который выбирает заявки с датой отгрузки на следующие три дня

Андрей Бабакин комментирует...

Ок

Андрей Бабакин комментирует...

Большое спасибо вот это то что надо!!! ;)

Отправить комментарий

Related Posts Plugin for WordPress, Blogger...