Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=5523)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование управляемых форм 1С 8.2 _ всплывающая подсказка при наведении на элемент в форме

Автор: bodka 05.12.11, 11:09

Допустим в расходной накладной, при наведении на наименование номенклатуры в ТЧ ,что б всплывала подсказка об остатке по этой номенклатуре. Возможно ли реализовать это на управляемой форме?

Автор: DartRomanius 05.12.11, 11:12

Насколько я понял такой номер не пройдет. Всплывающая подсказка для столбца работает, а вот для строки лично у меня не вышло подобного сделать.
ЗЫ: С другой стороны, не сильно и актуально было, так что может глубже копнуть.

Автор: Vofka 05.12.11, 19:56

Не знаю как при наведении курсора (нет такого события по-моему), но при активации стоки почему бы и нет через СообщениеПользователю.

Автор: DartRomanius 06.12.11, 8:19

Цитата(Vofka @ 05.12.11, 20:56) *
Не знаю как при наведении курсора (нет такого события по-моему), но при активации стоки почему бы и нет через СообщениеПользователю.


Как вариант конечно да, только я бы (да и не только я) рекомендовал бы не использовать данный подход в связи с увеличенной нагрузкой.
Так как будет постоянно происходить запрос при активации. Хотя если тазик с сервером мощный то конечно можно в отдельных случаях.

А вообще проще реализовать произвольный запрос в форме списка и добавить колонку с остатками, погрешность конечно будет при многопользовательской работе.....

Автор: logist 06.12.11, 9:02

А "ПриАктивизацииЯчейки" чем не подходит? Вместо всплывающей подсказки можно просто выводить в какой-то реквизит на форме.

офф: задача из разряда - хочу одну большую зеленую кнопку smile.gif

Автор: bodka 07.12.11, 14:32

Цитата(logist @ 06.12.11, 9:02) *
А "ПриАктивизацииЯчейки" чем не подходит? Вместо всплывающей подсказки можно просто выводить в какой-то реквизит на форме.

офф: задача из разряда - хочу одну большую зеленую кнопку smile.gif


Этот вариант наверное самый оптимальный. Будем делать так...

Автор: bodka 07.12.11, 15:59

Где я накосячил? Сообщение не выводится

&НаКлиенте
Процедура ТоварыПриАктивизацииСтроки(Элемент)
        КолОст();
КонецПроцедуры

&НаСервере
Процедура КолОст()

    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПриходнаяНакладнаяНаТоргТочкуТовары.Товар
        |ПОМЕСТИТЬ ТабДок
        |ИЗ
        |    Документ.ПриходнаяНакладнаяНаТоргТочку.Товары КАК ПриходнаяНакладнаяНаТоргТочкуТовары
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ОстаткиТовараНаСкладеОстатки.КоличествоОстаток КАК Остаток,
        |    ТабДок.Товар
        |ИЗ
        |    ТабДок КАК ТабДок
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТовараНаСкладе.Остатки(, ) КАК ОстаткиТовараНаСкладеОстатки
        |        ПО ТабДок.Товар = ОстаткиТовараНаСкладеОстатки.Товары";
        
    Результат = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = ""+ВыборкаДетальныеЗаписи.Остаток;
    Сообщение.Сообщить();
                                                    КонецЦикла;

КонецПроцедуры // КолОст()



Даже запрос не правильно собрал?

Автор: logist 07.12.11, 16:08

Цитата(bodka @ 07.12.11, 15:59) *
Даже запрос не правильно собрал?

Ну да, откуда этот запрос знает что надо выбирать именно в этом документе...

Автор: pablo 07.12.11, 16:31

"Если сообщение еще не было показано пользователю (такое может быть при работе на стороне сервера, в фоновом задании, внешнем соединении или Web-сервисах), можно получить накопленные сообщения методом ПолучитьСообщенияПользователю."
Для отладки пользуйте Сообщить.

Автор: bodka 10.12.11, 16:37

Подскажите пожалуйста, где я недоработал?

Процедура ОстатокТовара() Экспорт

    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

    Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
                                 Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Результат = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();

             
        //Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(""+ВыборкаДетальныеЗаписи.Товар + "На складе имеется "+ВыборкаДетальныеЗаписи.КоличествоОстаток);
    //КонецЦикла;

    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА



КонецПроцедуры

Запрос собирал в "Консоли" - все выводится корректно. А вот сообщение мне выводит количество в документе+остаток из регистра. Поместил сообщение в цикл так как без него выводится только "", а в цикле естественно выводятся сразу по всем товарам в таблице. А нужно по товару находящемся в активируемой строке. Подскажите пожалуйста

Автор: alex040269 11.12.11, 10:25

 |ВЫБРАТЬ
        |    ЕСТЬNULL(ОстаткиТовараНаСкладеОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
        |    ВТ.Товар
        |ИЗ
        |    ВТ КАК ВТ
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТовараНаСкладе.Остатки(
        |                &МоментВремени,
        |                Товары В
        |                    (ВЫБРАТЬ
        |                        ВТ.Товар
        |                    ИЗ
        |                        ВТ)) КАК ОстаткиТовараНаСкладеОстатки
        |        ПО ВТ.Товар = &Товар";

Товар = Товар в текущей строке

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua