[РЕШЕНО] Проблема с общей переменной

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

  1. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    Пишу обработку с подключением dll и работой с ней. Точнее не пишу, а переношу с 7.7. Помимо кучи вопросов с подключением вылез еще и такой. ПриОткрытии формы пишу
    Код:
    НачатьУстановкуВнешнейКомпоненты(,"ОбщийМакет.Макет");
        ОповещениеВК = Новый ОписаниеОповещения("ПослеПодключенияВК", ЭтаФорма);
        Результат = ПодключитьВнешнююКомпоненту("C:\Controller\vk_rs232.dll","Весы",ТипВнешнейКомпоненты.COM);
        Если НЕ Результат Тогда
            Сообщить("Не получилось подключить компоненту!");
            Возврат;
        КонецЕсли;
        rs232_1 = Новый ("AddIn.Весы.vk_rs232"); 
        rs232_2 = Новый ("AddIn.Весы.vk_rs232"); 
        Попытка
            rs232_1.ОткрытьПорт("COM1");  //Весы1
            rs232_1.СтоповыеБиты=1;
            rs232_1.Четность=0;
            ВесыПодключены = Истина;
        Исключение
            ВесыПодключены = Ложь;
        КонецПопытки; 
    переменная rs232_1 у меня общая (т.е. в начале модуля формы указано Перем rs232_1), и здесь нормально определяемся. Но когда я начинаю обрабатывать команду с формы у меня уже нет rs232_1. Ругается что "Переменная не определена".
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Что будет, если на машине не будет диска C?
    Управляемые формы?
  3. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    да, не только УФ, но и режим не модальности и асинхронности - я же говорю, там еще куча других вопросов. Но помимо красоты кода мне надо отладить логику работы, а для этого надо хоть что-то взвесить. Поэтому вопрос с dll идет параллельно, но сейчас меня больше волнует rs232_1
  4. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Полностью код покажите.
  5. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    Да это почти полностью и есть - по крайней мере что касается подключения ВК. Прочий же код идет по заполнению данных формы
    Код:
    Перем rs232_1;
    
    &НаКлиенте
    Процедура Взвешено(Команда)       
          получитьВес();
    КонецПроцедуры
    
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    НачатьУстановкуВнешнейКомпоненты(,"ОбщийМакет.Макет");
        ОповещениеВК = Новый ОписаниеОповещения("ПослеПодключенияВК", ЭтаФорма);
        Результат = ПодключитьВнешнююКомпоненту("C:\Controller\vk_rs232.dll","Весы",ТипВнешнейКомпоненты.COM);
        Если НЕ Результат Тогда
            Сообщить("Не получилось подключить компоненту!");
            Возврат;
        КонецЕсли;
        //р=0;
        rs232_1 = Новый ("AddIn.Весы.vk_rs232");
        rs232_2 = Новый ("AddIn.Весы.vk_rs232");
        Попытка
            rs232_1.ОткрытьПорт("COM1");  //Весы1
            rs232_1.СтоповыеБиты=1;
            rs232_1.Четность=0;
            ВесыПодключены = Истина;
        Исключение
            ВесыПодключены = Ложь;
        КонецПопытки;
        //
    КонецПроцедуры
    
    --- Объединение сообщений, 13 окт 2015 ---
    Получается что в самом модуле формы - rs232 имеет значение Неопределено всегда. Даже после отработки процедуры "ПриОткрытии", где она определяется, при возврате в общую часть модуля все равно Неопределено. А в процедурах она даже "Не определена". Такое впечатление что она не определилась как общая переменная
    Последнее редактирование: 13 окт 2015
  6. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    А с чего на клиенте она будет жить ?
  7. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Сделайте реквизит/параметр формы и работайте с ним.
  8. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    А почему нет?
    --- Объединение сообщений, 13 окт 2015 ---
    Реквизит формы не прокатывает - уже пробовала. А вот с параметрами еще не работала - пойду почитаю про них. А еще можно попробовать реквизит Объекта
  9. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    Реквизиты Формы и Объекта - не прокатывают, и параметры Формы - аналогично, т.к. они только для чтения. Т.е. надо менять всю структуру подключения ВК. А как? Т.е. в одной форме обработки подключать ВК и создавать rs, потом ее передавать уже параметром формы в нужную мне форму этой же обработки.
  10. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Вы бы не изобретали велосипедов, а посмотрели БСП, каким образом там реализовано взаимодействие с ТО для режима управляемого приложения.
  11. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    405
    Симпатии:
    71
    Баллы:
    54
    Здравствуйте.
    Попробуйте добавить признак &НаКлиенте перед определением переменной. У меня такие переменные работают.
    Код:
    &НаКлиенте
    Перем rs232_1;
    Ktyf нравится это.
  12. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    да пытаюсь я смотреть и БСП и БПО - но там пока продерешься сквозь дерби переадресации - ......
    --- Объединение сообщений, 13 окт 2015 ---
    Да!!! Спасибо!!!

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