Вход | Регистрация
 

Оповещение руководителя о крупных заказах

↓ [piter3, 12.02.21 - 23:59]
Оповещение руководителя о крупных заказах
Я
   GrandDukeKit
 
12.02.21 - 01:28
ЗАДАНИЕ №1 «Оповещение руководителя о крупных заказах»
Описание задачи
1. Нужно разработать внешнюю обработку в Конфигураторе 1С. Назначение обработки –
оповестить по электронной почте руководителя компании о новых заказах клиентов с
«интересной» суммой.
2. Форма обработки должна выглядеть так:
кнопка отправить
Период
Сумма
3. Обработка предназначена для конфигурации 1С:Управление торговлей 8, ред. 11. Задание
необходимо тестировать на демо-базе 1С:Управление торговлей 8, ред. 11. (демо-базу можно
скачать по ссылке https://bit.ly/2KpKhpq).
4. Пользователь, ответственный за рассылку данных, на форме обработки указывает период и
сумму, свыше которой заказы являются «интересными» для руководителя.
5. При нажатии на кнопку «Отправить» из 1С отправляется письмо, содержащее таблицу с
данными оформленных документов «Заказ клиента», удовлетворяющих условиям отбора.
Тема письма: «Крупные заказы за период с 10 сентября 2019 по 13 сентября 2019»
Тело письма:
«Здравствуйте, Иван Иванович!
Список заказов с суммой от 100 000 руб. за период с 10 сентября 2019 по 13 сентября 2019:
№ Дата Клиент Сумма Менеджер
УТ-0001 10.09.2019 ООО
«Ромашка»
100 000 руб. Павлов Н.И.
УТ-0004 12.09.2019 ИП Петров Н.В. 230 000 руб. Лебедева Н.С.
УТ-0015 13.09.2019 ИП Петров Н.В. 130 000 руб. Лебедева Н.С.
Всего 3 заказа на сумму 460 000 (Четыреста шестьдесят тысяч) руб.»
6. Перед отправкой должна происходить проверка, заполнены ли поля Период и Сумма. Если поля
не заполнены, то пользователь должен получать об этом сообщение. В сообщении должно быть
указано, какое поле не заполнено, а ошибка должна быть привязана к незаполненному полю.
7. Письмо должно отправляться по протоколу SMTP.
8. Необходимо разобраться, для чего используется модуль формы и модуль объекта, и
распределить программный код по этим модулям.
Контактная информация:
Звоните 8 (495) 374-60-72, пишите st@alexrovich.ru
127015, г.Москва, ул.Правды д.23 оф.1
v1.0_ASV20191023 стр. 2 из 2
9. На форме обработки должно «запоминаться» поле «Сумма». Т.е. при повторном открытии
обработки поле «Сумма» должно быть автоматически заполнено тем же значением, которое
было указано в прошлый раз.
10. Поле «Сумма» не может принимать значение меньше 100 000 руб. (должен быть запрещен ввод
таких значений).
11. Для выполнения задания необходимо зарегистрировать тестовый почтовый ящик на Яндексе.
Для тестирования отправки/получения писем и сдачи-приемки задачи можно использовать один
и тот же адрес электронной почты.

Простите за беспокойство и за уже старую тему. Но я уперся в создании табличной части и отправки письма. С запросом тоже на сто процентов не уверен.
Я буду рад любой информации, ссылками на источники. Предложениями как правильнее реализовать. Период выборку сделал Период Между. Если надо по другому,
опишите пожалуйста как именно. Более 100 К сделал. Но вот в табличной части почему-то ничего не появляется, кроме шапки. То есть данных нет.
   МихаилМ
 
1 - 12.02.21 - 01:32
если не можете сделать учебное задание -
нет достаточных способностей.
   МихаилМ
 
2 - 12.02.21 - 01:35
идите улицы убирать.. или другую работу ,соответствующую Вашим способностям делать.
   H A D G E H O G s
 
3 - 12.02.21 - 01:40
(0) А зачем это? В чем практический смысл?
   Кулибин
 
4 - 12.02.21 - 03:30
(3) я часов в 16 вчера на почту из профиля письмо написал с номером телефона. Хочу подарок сделать.
   Галахад
 
5 - 12.02.21 - 04:44
Даже и не понятно чем помочь.

Если проблема с запросом выкладывай запрос. С почтой, код отправления с почтой.
   GrandDukeKit
 
6 - 12.02.21 - 11:34
Запрос = Новый Запрос(    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

    // Данный фрагмент построен конструктором.

    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    
    Макет = ВнешниеОбработки.Оповещение_руководителя.ПолучитьМакет("Макет");
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ЗаказКлиента.Номер КАК Номер,
        |    ЗаказКлиента.Дата КАК Дата,
        |    ЗаказКлиента.Партнер.Клиент КАК ПартнерКлиент,
        |    ЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
        |    ЗаказКлиента.Менеджер КАК Менеджер
        |ИЗ
        |    Документ.ЗаказКлиента КАК ЗаказКлиента
        |ГДЕ
        |    ЗаказКлиента.Дата >= &Дата10.09.2019
        |    И ЗаказКлиента.СуммаДокумента > &СуммаДокумента100000
        |    И ЗаказКлиента.Дата <= &Дата13.09.2019
        |
        |УПОРЯДОЧИТЬ ПО
        |    Номер,
        |    Дата,
        |    ПартнерКлиент,
        |    СуммаДокумента,
        |    Менеджер";
    
    Запрос.УстановитьПараметр("Дата", Дата);
    Запрос.УстановитьПараметр("СуммаДокумента", СуммаДокумента);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    КонецЦикла;
    
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

);

Вот такой запрос получился. Таблицу выводит, но в ней ничего нет. Что не правильно в запросе ?
   Галахад
 
7 - 12.02.21 - 11:37
ЗаказКлиента.Дата >= &Дата10.09.2019
    И ЗаказКлиента.Дата <= &Дата13.09.2019

Это так и написано?
   GrandDukeKit
 
8 - 12.02.21 - 11:57
Ну в запросе он на синтаксис ругался, там просто нужно как период сделать, но на функции НАЧАЛО и КОНЕЦ периода он тоже ругается. В инете формат везде, такой как написал, мне он пишет, что синтаксическая ошибка.
   del123
 
9 - 12.02.21 - 12:00
Судя по:     Запрос.УстановитьПараметр("Дата", Дата);
Параметр даты устанавливается один, а нужно две даты.
Соотвественно в запросе должно быть:
ЗаказКлиента.Дата >= &Дата1
    И ЗаказКлиента.Дата <= &Дата2

И устанавливать в параметрах две даты
   GrandDukeKit
 
10 - 12.02.21 - 12:01
Классно, я это учел. Спасибо.
   GrandDukeKit
 
11 - 12.02.21 - 12:04
Возможны ошибки, но вот как по примеру, именно отправка на почту. Не смогу найти примеров решения отсылки таблицы. Сделать выгрузку и отправить это можно, но мне кажется что требуется отправить сформированный итог запроса. А как это сделать, я не знаю.  
    Профиль = Новый ИнтернетПочтовыйПрофиль;
     Профиль.АдресСервераSMTP = "smtp.yandex.ru"; 
     Профиль.ПортSMTP = 587;
     Профиль.Пользователь = "info@test.ru";
     Профиль.Пароль = "12345";
     Профиль.АутентификацияSMTP     = СпособSMTPАутентификации.Login;
     Профиль.ПарольSMTP           = "12345";
     Профиль.ПользовательSMTP     = "info@test.ru"; 
    
     Почта = Новый ИнтернетПочта;
     Попытка
        Почта.Подключиться(Профиль);
        
     Исключение
        Сообщить("Ошибка при подключении к серверу" + ОписаниеОшибки());
        Возврат;
     КонецПопытки;
    
     Сообщение = Новый ИнтернетПочтовоеСообщение;
     Сообщение.Отправитель = "info@test.ru";
     Сообщение.Получатели.Добавить("info@ya.ru");
    // вот тут как-то нужно послать макет(таблицу) то, что сформировалось.

     Почта.Послать(Сообщение);
     Почта.Отключиться();
   GrandDukeKit
 
12 - 12.02.21 - 12:07
В типе поля Дата у меня стоит СтандартныйПериод. Специально для этого. Но при этом все равно ругается.
   hhhh
 
13 - 12.02.21 - 12:16
(12) специально для этого, для чего? Выкиньте этот стандартный период. Поставьте тип дата.
   GrandDukeKit
 
14 - 12.02.21 - 12:25
Для того, чтобы можно было две даты ставить, как период обозначать. Но скорее всего я не так понял.. Хорошо. А как в почте отправить получившийся макет ?
   del123
 
15 - 12.02.21 - 12:42
(14) На форме оставляешь стандартный период, а в запрос передаешь параметры СтандартныйПериод.ДатаНачала, СтандартныйПериод.ДатаОкончания.
Таб док сохраняешь во временный файл и вставляешь в письмо как вложение.
   GrandDukeKit
 
16 - 12.02.21 - 18:44
Шикарно. Вот это комментарий! Спасибо большое!!! Сразу видно, что тут есть знающие люди, а то тип написать иди ищи другую работу или тому подобное всегда можно, но такое пишут те, кто сами ни на что ни способны, чаще всего.)) Я 1С ток изучаю. До этого вообще нейроинтерфейсами занимался, сейчас вот решил с 1С поработать. Спасибо del123 за совет.))
   Бишбармак
 
17 - 12.02.21 - 20:56
(16) На самом деле в УТ уже есть готовый функционал для отправки любого отчета по электронной почте.
От Вас на самом деле требуется написать внешний отчет на СКД, который выдаст результат как в Вашем начальном сообщении.
   xXeNoNx
 
18 - 12.02.21 - 21:13
(0) ты уже 5, на моей памяти, кто пытается осилить этот отчет)
   xXeNoNx
 
19 - 12.02.21 - 21:14
Поищи по веткам, все равно не возьмут)
палева вообще нет)
alexrovich.ru
   Курцвейл
 
20 - 12.02.21 - 21:23
(19) Там дофига платят?
   Курцвейл
 
21 - 12.02.21 - 21:24
вот это "а ошибка должна быть привязана к незаполненному полю." интересная штука, когда поля не привязаны к объекту. Приходится обязательно заводить реквизиты формы.
   Курцвейл
 
22 - 12.02.21 - 21:26
(21) А если на реквизита форму нету, то и привязку сделать нельзя. Большая боль если хотелось бы сообщение пользователю привязать к гиперссылке или к кнопке-команде.
   GrandDukeKit
 
23 - 12.02.21 - 22:15
xXeNoNx, знаю.)) Но что-то готового варианта я не нашел или альтернативного какого-нибудь решения тоже, возьмут не возьмут, там чет я уже не знаю, но задача заинтересовала.
Поищи по веткам, все равно не возьмут)
палева вообще нет)
Можно по подробнее, я не смекнул что к чему.))
Почему не возьмут ?
И что значит палева вообще нет, что за ветки ?
Да тип эт как первая задача, ничего не объяснили, в процессе там неприятные вопросики возникли. Я тип делал документы, запросы , некоторые, связи таблиц, ссылки, тип
из интересного, я делал ток загрузку валют по кнопке. Соответственно внутренние формы, плюс эти сообщения в новинку.
Спасибо за совет, на счет вывода сообщения об ошибке, а то я прост галку поставил, чтоб автоматически следил за заполнением и высылал ошибку.
Как выводить сообщение вопрос=0 , а вот как выводить ,когда поле не заполнено, если кто знает команду, скажите пожалуйста, круче конечно пример.
   GrandDukeKit
 
24 - 12.02.21 - 22:18
Внешняя обработка=*внутренние формы. Я опечатался.))
   acht
 
25 - 12.02.21 - 22:36
(23) > И что значит палева вообще нет

Это значит, что сидит тут, например, представитель этой конторы и тихо ржот, смотря на вас - кандидатов. Берет это все на карандаш и учитывает при дальнейшем разборе. "Ничего не объяснили", ну дети, чесслово.
   GrandDukeKit
 
26 - 12.02.21 - 22:45
Возможно, но совсем не обязательно. Ну я то не на профи устраиваюсь, или на средний уровень, а на начальный. Можно я думаю бы немного помочь.)) Сказано было искать инфу везде. Ну мне норм, главное всегда двигаться дальше, новое узнавать. Вот и узнаю.)
   acht
 
27 - 12.02.21 - 23:01
(26) > Можно я думаю бы немного помочь.))

Вас таких, "начальных", как семечек на базаре, по три рубля кулек. И все со смайликами.
Нет уж, давайте сами. Раскрывайтесь и все такое.
   GrandDukeKit
 
28 - 12.02.21 - 23:20
Хорошо. Постараюсь. Если у вас есть источники, которые в этом помогут, я буду рад, если поделитесь.
   acht
 
29 - 12.02.21 - 23:35
(28) https://www.1c-uc3.ru/our_courses.html
Но ты же ожидал другого.
   GrandDukeKit
 
30 - 12.02.21 - 23:57
А бесплатной инфы нет ?)) Ахах. Но ты же ожидал другого, про что вы имеете в виду, прост интересуюсь.)
 
 Рекламное место пустует
   Krendel
 
31 - 13.02.21 - 00:49
(0) а нафиг пользователя? В рег задание вешается же
   Бишбармак
 
32 - 13.02.21 - 08:37
(30) Есть бесплатные ролики на ютубе.
Главное правильно задачу разбить на подвопросы.
   VladZ
 
33 - 13.02.21 - 17:39
(0) Не можешь сделать тестовое задание - значит ты еще не готов.
Читай букварь, тренируйся.

Разбей задачи на части. Решай по частям.
   GrandDukeKit
 
34 - 14.02.21 - 22:27
Не, тестовое задание по сути сделал. В плане задания нет ничего сложного, мне интересны варианты его выполнения. В инете посмотрел, единственное были моменты, как с этими периодами работать, я не сталкивался. Но мне помогли с ними разобраться. На счет этой кампании, там один момент не приятный нашелся, я его говорить не буду. Но там такое. Я дальше пойду.
   GrandDukeKit
 
35 - 14.02.21 - 22:29
Буду осваивать. Если у кого-нибудь есть еще задачки, можете скинуть, мне порешать, по практиковаться. В особенности интересны задачи на категории уже. Мне для ознакомления.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.