gifts2017

Обработка "Рабочее место менеджера" для УТ 8.0, 8.1

Опубликовал kitt al;dskjf;ldasjkf (kitt) в раздел Обработки - Рабочее место

Внимание, разработка снята с поддержки. Работоспособность в конфигурациях УТ старше версии 10.2 не гарантируется. Более того, есть несколько отзывов, что она там не работет. К сожалению, сейчас у меня нет времени \ желания дорабатывать ее до работоспособности в последних версиях, особенно учитывая, что фирма 1С ввела возможность просмотра остатков\цен в списке справочника (пусть только по текущему элементу:) Я не удаляю данную обработку, в надежде, что кому-нибудь пригодится как учебное пособие. Весь текст далее, выделенный курсивом, относится к описанию версии для работы с конфигурациями младше 10.3


Клиенты попросили сделать, специфика у них такая, что нужно смотреть несколько цен и остатки сразу для большого списка номенклатуры.

 Итак, сначала о хорошем:

- Обработка напоминает список справочника Номенклатура, только без дерева групп(убрал для экономии места)
- в списке иерархически выводиться номенклатура, помимо номенклатуры в списке выводятся
- остаток текущей позиции общий
- остаток текущей позиции по выбранному складу
- цена для типа цен "ЦенаЗакупки" указанного в настройках обработки
- цена для типа цен "ЦенаПродажи" указанного в настройках обработки
- есть возможность указать валюту, тогда цены будут пересчитываться в эту валюту
- есть возможность указать дату на которую должны выводиться остатки и цены
- обработка работает в двух режимах "ПоСправочнику" или "ПоОстаткам"
- при работе в режиме "ПоСправочнику" выводяться все позиции номенклатуры и цены для них
- при работе в режиме "ПоОстаткам" выводяться только те позиции номенклатуры, которые есть на остатках, остаток общий, по выбранному складу и цены
- двойным кликом можно открыть форму элемента текущей номенклатуры
- наверху формы есть удобная панелька с 4-мя кнопками ЖурналПоступлений, ЖурналРеализиций,НовоеПоступление, НоваяРеализация. Думаю их назначение понятно из названий.
- Обработка АБСОЛЮТНА бесплатна, ее код открыт (хотя местами и не очень разборчив)

И конечно о плохом =((
- Делалось под нужды конкретной фирмы, поэтому остатки беруться из регистра "ТоварыНаСкладах", если вы ведете учет в разрезе нескольких организаций, то остатки будут суммироваться по всем организациям
- пока не расчитываются динамически типы цен (которые не храняться регистре сведений, а рассчитывается КАЖДЫЙ раз)
- проверялось все на УТ 10.2.8.2, на остальном проверить пока небыло времени
- возможны другие мелкие (а может и не мелкие=)) глюки

Жду ваших отзывов, если такое рабочее место окажется востребованным, можно и переделать получение остатков по регистру ТоварыОрганизаций, и в настройки добавить организацию для отбора по ней остатков.

15.11.2007 Обновление.
Полностью переработана концепция получения информации об остатках. Скорость работы должна стать быстрее. Хотя у меня в небольшой базе (300 Мб) и до этого не тормозило.
Переделан возможность быстрого отбора по остаткам:
-по всем позициям
-в наличии по выбранному складу
-в наличии на любом складе

За алгоритм огромное спасибо Drock.
Сам алгоритм можно посмотреть тут: http://www.infostart.ru/articles/180/ и тут: http://www.infostart.ru/articles/181/

Жду комментариев и предложений


21.10.2008
Спасибо за комментарии и предложения, обращаю еще раз ваше внимание, на то что разработка больше мной не поддерживается, и оставленна здесь исключительно как учебное пособие. Если вам ну прям очень необходимо что либо подобное и чтобы еще и работало без ошибок, дайте объявление в разделе "Работа" http://infostart.ru/orders/ , за относительно не большую плату вам там обязательно помогут.

Скачать файлы

Наименование Файл Версия Размер
Рабочее место менеджера для УТ 8.0 81
.1195058280 12,81Kb
25.09.09
81
.1195058280 12,81Kb Бесплатно
Рабочее место менеджера для УТ 8.1 102
.1195058339 10,37Kb
25.09.09
102
.1195058339 10,37Kb Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

1. kitt al;dskjf;ldasjkf (kitt) 09.11.07 20:18
кстати, почему то я не могу добавлять скриншоты( или это только для платных программ??
2. kitt al;dskjf;ldasjkf (kitt) 10.11.07 05:28
Все со скринами разобрался )
3. Drock (d.snissarenko) 10.11.07 14:02
слово - оптимизация не знакомо?
Вообще на больших справочниках - жуткие тормоза ;)
смотри вот сюда как я реализовывал
http://www.infostart.ru/articles/180/
http://www.infostart.ru/articles/181/

Но не стоит останавливаться- пиши еще
4. kitt al;dskjf;ldasjkf (kitt) 10.11.07 16:38
посмотрел твой вариант. Погонял замером производительности. Мне кажется что у меня слишком большой запрос. Ведь в нем еще получаются цены, курсы, и после этого все пересчитывается в нужную валюту. Хотя табличное поле конечно будет быстрее получать данные чем запрос+табличнаяЧасть.Загрузить(). Погоняю еще, потом отпишусь. За оригинальный способ - спасибо, я бы не додумался.
5. kitt al;dskjf;ldasjkf (kitt) 10.11.07 16:39
Табличное поле с типом СправочникНоменклатура.Список, естественно
6. kitt al;dskjf;ldasjkf (kitt) 10.11.07 17:19
Процедур ПриПолученииДанных() срабатывает при изменении состава строк табличного поля СправочникСписок. При большом запросе с ценами и пересчетом цен в нужную валюту в запросе, при прокручивании табличного поля ощущается заметное притормаживание. То есть так же как в формах списка справочников в 7ке, обращение к остаткам, ценам происходит каждый раз при прокрутке списка. А в моем варианте, если и ощущается небольшое замедление при открытии группы содержащей большое количество элементов, то после отрытия список можно крутить как хочешь и тормозов не будет.
7. Виталий (VitaliySm) 10.11.07 18:49
Не пробовал рекомендации с ИТС почитать, там как раз есть решение ситуации, когда данные получаются при событии ПриПолученииДанных().
8. kitt al;dskjf;ldasjkf (kitt) 11.11.07 04:24
у меня нет проблем в ситуации с процедурой ПриПолученииДанных(), я ее просто не использую
9. Drock (d.snissarenko) 11.11.07 12:27
а у меня нет тормозов при прокрутке - поскольку пока в базе работают 1-2 юзера твой запрос выполняется с одной скорость, а когда 50 то совсем с другой, и данные вывожу именно список при получении данных - запрос примерно такой
Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ
| СпрНом.Ссылка КАК Номенклатура,
| Поставка.КоличествоОстаток КАК Поставка,
| Резерв.КоличествоОстаток КАК Резерв,
| Остаток.КоличествоОстаток КАК Остаток,
| ЕСТЬNULL(ДополнительныеСвойстваНоменклатуры.КоличествоДнейНаСкладе, 0) КАК КоличествоДнейНаСкладе,
| ЕСТЬNULL(Габарит.КоличествоОстаток, 0) + ЕСТЬNULL(Остаток.КоличествоОстаток, 0) + ЕСТЬNULL(Поставка.КоличествоОстаток, 0) - ЕСТЬNULL(Резерв.КоличествоОстаток, 0) КАК ДоступноКЗаказу,
| Цены.Цена,
| Курсы.Курс,
| Курсы.Курс * Цены.Цена КАК ЦенаРуб
|ИЗ
| Справочник.Номенклатура КАК СпрНом
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки КАК Поставка
| ПО СпрНом.Ссылка = Поставка.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК Резерв
| ПО СпрНом.Ссылка = Резерв.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад В (&ВЫбСклад)) КАК Остаток
| ПО СпрНом.Ссылка = Габарит.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСвойстваНоменклатуры КАК ДополнительныеСвойстваНоменклатуры
| ПО ДополнительныеСвойстваНоменклатуры.Номенклатура = СпрНом.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаРасчета, ТипЦен = &ТипЦен) КАК Цены
| ПО СпрНом.Ссылка = Цены.Номенклатура.Ссылка,
| РегистрСведений.КурсыВалют.СрезПоследних(&ДатаРасчета, Валюта = &Валюта) КАК Курсы
|ГДЕ
| СпрНом.Ссылка В(&Ссылка)";
Если НЕ ТипЦены.Рассчитывается Тогда

Запрос.УстановитьПараметр("ТипЦен",ТипЦены);
Иначе

Запрос.УстановитьПараметр("ТипЦен",ТипЦены.БазовыйТипЦен);

КонецЕсли;

Запрос.УстановитьПараметр("Ссылка", СсылкиМассив);
Запрос.УстановитьПараметр("ДатаРасчета",КонецДня (ДатаРасчета));
Запрос.УстановитьПараметр("Валюта",Константы.ВалютаУправленческогоУчета.Получить());
Если ВыбСклад.Пустая() тогда
Запрос.УстановитьПараметр("Выбсклад",ОбщийСклад);
Иначе
Запрос.УстановитьПараметр("ВыбСклад",ВыбСклад);
КонецЕсли;
10. Алексей Заболотнов (z-alexey) 12.11.07 08:12
Запустил на своей базе в sql, 1 юзер online, более 5000 наименований - тормоза жуткие.
Причем если ходить по товарам с помощью клавиатуры, то при нажатии Enterom при входе в папку - теряется фокус, и приходится тянуться мышкой и активизировать табличное поле.

И в 5000 позициях быстро найти нужный товар просто нереально - менеджер просто не может помнить в какой папке находится нужный товар, и даже если знает, то пока он зайдет в папку (скажем на 4-5 уровень), то клиент уже повесит трубку, не дождавшись ответа есть ли товар и какая цена.

Оптимизировать - однозначно нужно.
11. cs25 (cs25) 12.11.07 09:29
Понравилось !!! Плюсуем !!!
12. kitt al;dskjf;ldasjkf (kitt) 12.11.07 12:26
оптимизиурую обязательно, просто щас у меня нет большой базы чтобы там погонять, но че нить возьму у клиентов, обязательно займусь этим вопросом
13. Олег (_OLEG) 12.11.07 14:51
Хороший отчет но на 1С 7.7 наименований около (8000) уже лет 7 гораздо быстрее работает.
14. kitt al;dskjf;ldasjkf (kitt) 14.11.07 19:43
Обновил алгоритм, должно работать быстрее. Но к сожалению все еще нет под рукой большой базы чтобы испытать . Попробуйте пожалуйста и скажите мне =)
15. kitt al;dskjf;ldasjkf (kitt) 17.11.07 19:48
ну так что, будут какие нибудь пожелания предложения по разработке, или всех так устаривает???
16. looxxx Пристайко (looxxx) 05.05.08 17:26
{Форма.Форма(105,13)}: Процедура или функция с указанным именем не определена (ПолучитьЗначениеПоУмолчанию)
ВыбСклад = <<?>>ПолучитьЗначениеПоУмолчанию(глТекущийПользователь,"ОсновнойСклад");
17. kitt al;dskjf;ldasjkf (kitt) 17.06.08 08:28
18. Федор Программист (fedor40) 06.08.08 09:09
УТ 10.3.5 вот

{Форма.Форма(105,41)}: Переменная не определена (глТекущийПользователь)
ВыбСклад = ПолучитьЗначениеПоУмолчанию(<<?>>глТекущийПользователь,"ОсновнойСклад");
{Форма.Форма(105,13)}: Процедура или функция с указанным именем не определена (ПолучитьЗначениеПоУмолчанию)
ВыбСклад = <<?>>ПолучитьЗначениеПоУмолчанию(глТекущийПользователь,"ОсновнойСклад");
19. Федор Программист (fedor40) 20.10.08 23:20
Ау.....Скачал для 81 - нет даже разрешения файла.
20. kitt al;dskjf;ldasjkf (kitt) 21.10.08 04:22
(19) поправил описание, читайте
21. kitt al;dskjf;ldasjkf (kitt) 21.10.08 04:24
В чем у вас трабл с расширением, не имею ни малейшего понятия. Скачиваю обе версии, в обоих архивах по внешней обработке с расширением.
22. Аркадий Кучер (Abadonna) 21.10.08 05:44
(21) А я тебе скажу почему трабл, не надо точки в названии файла ставить. Качается как RabocheeMestoMenedzhera8.1 (расширение единичка)
23. kitt al;dskjf;ldasjkf (kitt) 21.10.08 09:00
*21
... Скачиваю обе версии браузером Опера, в обоих архивах по внешней обработке с расширением.
Кто что выбирает))
24. Борис Разорёнов (Bor_ka) 02.04.10 18:51
Здравствуйте, очень понравилась простота решения и наглядность. Со своей стороны есть пожелания:
1. Добавить возможность вкл/выкл иерархию
2. Добавить "Печать прайса" (стандартного);

Жду обновлений :)
25. Дмитрий Плотников (Zexes) 07.12.16 13:37
А что-нибудь подобное для КА 1.1 есть?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа