• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Сделал отображение картинки в списке (8-ка)

  • Автор темы Дайнеко
  • Дата начала
U

unknown181538

Как я понял, собирая опыт по выводу остатков, "ПриПолученииДанных" предпочтитетельней. Осложняет, что довольно сложно проверитью
 
V

vbs

На днях получил заказ: в журнале документов (счет на оплату покупателю) в виде специальных значков отображать, стадии отгрузки по данному счету ( не отгружен, отгружен частично, полностью отгружен).
Может, не совсем в тему. Что-то подобное делал в 7ке. В форме списка справочника завел поле, показывающее картинку, дочка мне разрисовала несколько состояний годности товара в нужном размере (в пикселях),
тормозов не наблюдал. Впрочем, за 8ку не скажу, не знаком <_<
 
U

unknown181538

Кто знает, может у него сложный очень запрос....
 
Д

Дайнеко

Да будь ты проще - сделай быстро и легко. Микросекунды сервера не дороже твоих часов.
И только когда, хотя бы заметишь замедление (а это сомнительно) наводи лоск.

Я вот не понял насчет запроса. Для извлечения поля из документа формируешь красивый Запрос?
Опять же, трудов положил сколько..
А что, так неправильно?:
Код:
Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.Пиктограмма.ОтображатьКартинку = Истина;
ОформлениеСтроки.Ячейки.Пиктограмма.Картинка = НомерКартинки(ДанныеСтроки.Ссылка.СтадияГотовности);
 
D

Darlock

"ПриВыводеСтроки" вызывается каждый раз при появлении в форме списка строки тбличной части. Т.е. ваш запрос будет работать постоянно, не зависимо картинка уже выведена или нет. Следовательно, постоянные запросы к БД - напряг и тормоза. Используйте метод "ПриПолученииДАнных" он вызывается только для новых строк, которые еще НЕ ОТОБРАЖАЛИСЬ. Первый параметр - коллекция оформления строк. выполните запрос 1 раз, и обходите коллекцию в цикле. Таким образом вы выполните запрос минимальное количество раз.
 
T

tanat

Да собственно запрос простенький, к одному регистру, параметизированный. Выполняется в миг.

Кстати в отладчике посидел и для себя выявил, что ПриВыводеСтроки запускается при открыти списка, его обновлени и "развертывании" формы списка на весь экран, так что ( может конечно чтото и не понял) но думаю, что оставлю, как есть.

Как мне кажется, если сделать через "ПриПолученииДанных", то в случае, когда меняется статус конкретного ( уже выведенного) счета, пользователь не увидит изменений. Правда времени проверить пока нет, на днях проверю обязательно.

Вопрос то поднял чтобы через год работы мне клиент не звонил и не говорил: "а вот Вы мне тут делали-делали, а теперь работать невозможно".

ОформлениеСтроки.Ячейки.Пиктограмма.Картинка = НомерКартинки(ДанныеСтроки.Ссылка.СтадияГотовности);

На счет СтадииГотовности не очень понял. Я так понимаю, это реквизит? У меня к сожалению его нет).Если да, то придется "прикручивать" обработчики изменения состояния у счета на оплату, в момент проведения отгрузки... А мне за это не платили).
Както не ясно, хочется подробнотей :).
 
Д

Дайнеко

... А мне за это не платили).
Както не ясно, хочется подробнотей :).

Мы с детьми смотрим по Дискавери "выживальщика" Les Stroud-а. Так он любит приговаривать при мелких проблемах (то ягуар в кустах зарычит, то вода в пустыне кончится): "Мне за это слишком мало платят".

На счет СтадииГотовности не очень понял. Я так понимаю, это реквизит?
Разумеется в выражении "ОформлениеСтроки.Ячейки.Пиктограмма.Картинка = НомерКартинки(ДанныеСтроки.Ссылка.СтадияГотовности);"
придуманы мною название реквизита "СтадияГотовности" и функция НомерКартинки(). Интересно, а ты как придумал иначе, если не реквизитом?

И последнее. Неплохо бы договорится по терминологии. Это вызвало у меня непонимание коллег. Если бы я писал слово "Запрос", то я бы имел в виду, что у меня есть в программе строка "Запрос = Новый Запрос;"
А если я говорю о строке в программе "Абв = ДанныеСтроки.Ссылка.СтадияГотовности;", то я назову это "Обращение", "Извлечение", "Выражение". Может еще кто что придумает, но Запросом - ни за что. И неважно, как 1С внутри и к кому обращается. Мне важно четкое понимание действий и мыслей программиста.
 
T

tanat

Интересно, а ты как придумал иначе, если не реквизитом?

Вставил три картинки в "Общие картинки" с префиксами, и в зависимости от результатов запроса вывожу их.

По поводу запроса : делаю запрос к регистру накопления по конкретному счету, смотрю, есть ли остатки в этом регистре накопления по номенклатуре из счета, ну а дальше дело техники, разве это принципиально?
 
Д

Дайнеко

Я понимаю так, что обращение к регистру - достаточно длительная операция (относительно конечно). Поэтому, я бы искал более скоростной путь. Завел бы в реквизит в документе, менял бы его при совершении действия над счетом, от него отражал бы картинку.
Вот это был бы реальная экономия шустрости, вместо милисекунд разницы "ПриВыводе" "ПриПолучении".
 
T

tanat

Дело в том, что после выписки счета он фактически и не меняется. "Отгружен" счет или нет определяется на момент проведения расходной накладной. Я размышлял над подобным решением ( сделать реквизит в счете), но меня смущает вот чем: Не потребуется ли мне в дальнейшем восстанавливать последовательность документов и точку актуальности?
 
P

puh14

Дело в том, что после выписки счета он фактически и не меняется. "Отгружен" счет или нет определяется на момент проведения расходной накладной. Я размышлял над подобным решением ( сделать реквизит в счете), но меня смущает вот чем: Не потребуется ли мне в дальнейшем восстанавливать последовательность документов и точку актуальности?

А ты его не перепроводи - и последовательность с ТА целы, и функция сыта.
 
T

tanat

А как сохранить проведенный документ без его перепроведения? (В этой конфе счет делает движение по регистру накопления, помоему "доставка" - отражение затрат на доставку товара).
 
U

unknown181538

А значение реквизита влияет на движения документа?
Нельзя его записывать без перепроведения? хотя не стоит наверное...
 
Д

Дайнеко

Да просто, записал, программно. На самом счете Ок не нажимать. Я так полагаю:
- Всю механику сделать в Расходной. Она ПриЗаписи (При проведении) залазит в Счет (есть ссылка на него).
- Меняет реквизит Статус и записывает документ, не проводит.

Есть замечания:
- может не полностью отгружен - сверять итоговые суммы
- Расходную могут отменить, значит надо ПриОтмене что-то делать
- Статусов заранее предусмотреть побольше "Оплачен", "Передан на отгрузку", "Отменен" ...
 
T

tanat

Идея понятна, спасибо.
На счет перепроведения - на самом деле ошибся, каюсь.
Донесу до клиента, если согласен будет заплатить денежку дополнительно - сделаем статусы у счета, нет - так нет).
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!