8.х Не могу разобраться с поведением конфигурации

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Johndoe144, 7 авг 2017.

  1. TopicStarter Overlay
    Johndoe144
    Offline

    Johndoe144

    Регистрация:
    4 фев 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Добрый день,
    Прошу по возможности помочь, т.к. самостоятельно никак не получается понять, почему происходит следующее:

    Исходные данные:
    Есть "самописная" конфигурация (версия 8.3.9). В ней - документ. В форме документа необходимо задать доступность кнопки при условии, что во всех выделенных строках поле "Комментарий" не пустое (тип значения реквизит "Комментарий" - строка).

    Для табличной части ("Состав") прописан следующий код для события "ПриАктивизацииСтроки":

    СтрокБезКомментов = 0;
    Для Каждого СтрокаТЧ из Элементы.Состав.ВыделенныеСтроки Цикл
    НСтроки = ТЧ.НайтиПоИдентификатору(СтрокаТЧ).НомерСтроки;
    Если ТЧ[НСтроки-1].Комментарий = "" Тогда
    СтрокБезКомментов = СтрокБезКомментов + 1;
    КонецЕсли;
    КонецЦикла;


    //Условие видимости --->
    Если СтрокБезКомментов > 0 Тогда
    Элементы.Кнопка.Видимость = Ложь;
    Иначе
    Элементы.Кнопка.Видимость = Истина;
    КонецЕсли;


    //Условие видимости <----

    Сообщить(СтрокБезКомментов);

    Непонятно следующее:
    Если убрать блок "Условие видимости", то 1С отрабатывает все правильно и в зависимости от того, сколько строк без комментов, выводит число - сколько подобных строк.
    Если же блок оставить, то 1С выводит число строк без комментов 2 или 3 раза, в зависимости от того, как они были выделены, другими словами, если выделяю строки, у которых есть коммент, то - все в порядке, число выводится единножды, если же попадается "отличающаяся" строка (без коммента) число выводится уже дважды (второй раз) - со значением (1 или 0) в зависимости от того есть коммент или нет.
  2. 1с-ник
    Offline

    1с-ник Профессионал в 1С Заблокирован

    Регистрация:
    5 окт 2014
    Сообщения:
    998
    Симпатии:
    162
    Баллы:
    104
    Добавь скриншоты для наглядности
  3. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    5.011
    Симпатии:
    170
    Баллы:
    104
    1. Номер строки не нужно получать. Вы же получили строку по идентификатору. Просто обращайтесь к комментарию.
    Код:
    ...
    СтрокаТаблицы = ТЧ.НайтиПоИдентификатору(СтрокаТЧ);
    Если СтрокаТаблицы.Комментарий = "" Тогда
    ...
    2. Посмотрите, не установлен ли режим совместимости с более ранней версией платформы (ниже 8.3.7).
    Раньше (до 8.3.7) изменение видимости элементов на клиенте приводило к вызову сервера. А в событии ПриАктивизацииСтроки нельзя использовать контекстные серверные вызовы. В этом случае возникали проблемы.
    В связи с этим попробуйте включать/выключать не видимость кнопки, а доступность.
  4. TopicStarter Overlay
    Johndoe144
    Offline

    Johndoe144

    Регистрация:
    4 фев 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Прошу прощения - со скриншотами и их вставкой у меня сложности. Сделал, как сумел.

    По поводу совместимости - совместимости нет.

    Скриншоты (обратите внимание на "Сообщения" и их количество):
    01.jpg - выделил первую строку (с комментарием).
    01.jpg

    02.jpg - зажал Shift, выделил вторую строку (также с комментарием), отпустил Shift

    02.jpg
    03.jpg - снова Shift, выделяю до первой строки без комментария, отпускаю Shift. В результате - 2 числа 1 почему-то.

    03.jpg
  5. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    5.011
    Симпатии:
    170
    Баллы:
    104
    Попробуйте изменить код, как я Вам написал.
    И попробуйте менять не видимость, а доступность.
  6. TopicStarter Overlay
    Johndoe144
    Offline

    Johndoe144

    Регистрация:
    4 фев 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Изменил код, изменил видимость на доступность - все без изменений. Также, выбрал первую строку - получил "0", выбрал с Shift-ом все, вплоть до 12-й (где еще есть комментарий), получил: 1, 0, 0 в "Сообщениях".
    Не понимаю, почему так происходит
  7. TopicStarter Overlay
    Johndoe144
    Offline

    Johndoe144

    Регистрация:
    4 фев 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    О! Вроде "починилось".
    Но, все-таки, извините, какая-то "хрень" (по-другому и не скажешь).

    Версия у меня стояла 8.3.10 (все-таки).
    "Починилось" все после того как доустановил 8.3.9. Затем ее "снес".

    Теперь работает несмотря на включенную совместимость с 8.3.9. Причем, "заработало" и со "старым кодом", где я номер строки искал.
    В общем, непонятно, но работает ;)
  8. TopicStarter Overlay
    Johndoe144
    Offline

    Johndoe144

    Регистрация:
    4 фев 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Всем спасибо за поддержку и посильную помощь.
    Попробую завтра проверить "решение" на другом PC.

Поделиться этой страницей