7.7 Добавление кнопки записать в подборе

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

  1. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    Тис 7.7 957 релиз. Нужно добавить кнопку "записать" в подборе. Смысл ее такой, при ее нажатии она должна сработать как по кнопке ок. Это я реализовал так
    Код:
    Процедура ПоКнопкеЗаписать()
    ВыполнитьЗапись();
    Форма.Закрыть(1);	   
    // может что то типа Форма.ТекущийДокумент.Записать();
    // Форма.ТекущийДокумент.ПокнПодбор();	
    // к сожилению знаний не хвататет т.к программирование 1с  не является моей основной работой
    <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/конецпроцедуры')">КонецПроцедуры	</span> 
    
    А вот дальше интереснее, выбранные позиции переносятся в документ. В этом документе нужно совершить нажатие кнопки записать и снова открыть подбор. Помогите пожалуйста.
  2. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    таблица подбора для упрощения задачи может быть пустой
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    В общем мыслили правильно.
    Но чтобы не менять общие процедуры в ГМ и не сильно изменять код можно сделать так:

    1) Заводим в ГМ ГЛОБАЛЬНУЮ переменную
    Код:
    Перем ПродолжитьОтбор Экспорт;
    
    
    
    
    
    
    2) в документе в процедуре вызова подбора ПоКнопкеПодбор()
    перед вызовом процедуры ГМ пишем
    Код:
    Параметры.ДобавитьЗначение("Подбор номенклатуры в документ " + ПредставлениеВида() + " № " + НомерДок, "Заголовок");
    ПродолжитьОтбор=0;//это добавили
    глПодбор(Контекст, Параметры);
    
    
    
    
    
    3) В вашей процедуре по кн. "Записать" нужно так:
    Код:
    Процедура ПоКнопкеЗаписать()     
    ВыполнитьЗапись();     
    ПродолжитьОтбор=1;
    Форма.Закрыть(1);
    КонецПроцедуры
    
    
    
    
    
    
    4) Снова в документе в процедуре ОбработкаПодбора
    в конце добавляем
    Код:
    Если ПродолжитьОтбор=1 Тогда
    Записать();
    ПоКнопкеПодбор();
    КонецЕсли;
    
    
    
    
    
    
    Способ хорош если нужно записывать для одного документа. Если нужно несколько - я бы переписал процедуры обработки из ГМ (для передачи контекста и записью напрямую, но тут возникает дилема с модальностью из-за добавления в т.часть документа)
  4. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    Код:
    Если ПродолжитьОтбор=1 Тогда
    Записать();
    ПоКнопкеПодбор();
    КонецЕсли;
    
    продолжить отбор всегда равен 0.
    в ГЛ перемен не передается продолжитьОтбор=1
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Если вы правильно объявили процедуру (экспорт) она доступна в любом контексте программы. Может граматическая ошибка закралась?
  6. Hawk Eye
    Online

    Hawk Eye Гость Гость

    ты же ПоКнопкеЗаписать() ... не в документе сделал, да? )
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Это в списке подбора кнопка
  8. Hawk Eye
    Online

    Hawk Eye Гость Гость

    это не мне надо объяснять
  9. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    по кнопке записать сделал в форме дляПодбора
  10. Hawk Eye
    Online

    Hawk Eye Гость Гость


    а на кнопку её назначил? что отладчик показывает?
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Попробуйте в процедуре ОбработкаПодбора модля формы документа добавить
    Код:
    Сообщить(ПродолжитьОтбор);
    Если ПродолжитьОтбор=1 Тогда   
    Записать();   
    ПоКнопкеПодбор();
    КонецЕсли;
    
    
    Что покажет?
  12. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    Сообщает число 1
  13. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    Может условие нужно делать что то типа Нажать.КнПодбор или Форма.КнПодбор.Нажать(); а не ПоКнопкеПодбор();
  14. Hawk Еyе
    Offline

    Hawk Еyе

    Регистрация:
    11 фев 2011
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    это вам не 8-ка ))))

    1. в форме справочника для подбора в ВыполнитьЗапись() добавляешь:
    Код:
    !!!ПараметрыКоторыеВозвращаються!!!.ДобавитьЗначение(1, "ПродолжитьПодбор");
    
    
    этим сможешь в дальнейшем рулить, продолжать подбор или нет.


    2. в документе из которого вызываешь подбор, добавляешь глобальную переменную документа.
    Код:
    Перем НеЗакрывать;
    
    3. в процедуре ОБработкаПодбора()
    перед КонецПроцедуры пишешь:
    Код:
    <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/если')">Если !!!ПолученныеПараметры!!!.Получить("ПродолжитьПодбор") = 1 ТОгда</span>
    НеЗакрывать = 1;
    Форма.Закрыть(1);
    КонецЕсли;	
    

    4. в процедуре ПриЗАкрытии()
    сразу после ПриЗакрытии() пишешь:
    Код:
       Если НеЗакрывать = 1 ТОгда 
    НеЗакрывать = 0;
    Записать();
    ПоКнопкеПОдбор();
    СтатусВозврата(0);
    Возврат;
    КонецЕсли;
    
    так взлетит....

    зы. то, что выделенно "!!!" - замени на имена переменных из текста модуля...

    зызы. по другому можно попробывать, чтобы вообще не закрывать форму подбора... но там переписывать больше придется...
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    И что - подбор снова не открывается?
  16. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    Да не открывается
  17. Hawk Eye
    Online

    Hawk Eye Гость Гость

    и не будет....
  18. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Hawk Eye - оставлять неаргументированные ответы - дурной тон.
    SerzhM - стукните в личку, гляну уданенно что у вас не так..

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