Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Инициация кнопки F9
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Pavlik1c
Имеется документ ("Дневная выработка") с номером "000000001", в нем заполнены ручками реквизиты...
Имеется обработка, на ее форме: окно списка документов "Дневная выработка" и рядом КНОПКА "Добавить новую дневную выработку"...
Какую процедуру этой кнопки необходимо описать, чтобы сработала аналогия нажатия кнопки F9 по документу с номером "000000001"?
Ardi
Цитата(Pavlik1c @ 13.08.14, 22:05) необходимо зарегистрироваться для просмотра ссылки
Какую процедуру этой кнопки необходимо описать, чтобы сработала аналогия нажатия кнопки F9 по документу с номером "000000001"?

Што?
EritikWoW
Я так понимаю человек хотел что бы заместо нового документа при нажатии на кнопку создавалась копия ! =)

копия документа 000000001
EritikWoW
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

Если ЭтоНовый() Тогда    
ДокОбразец = Неопределено;
    ДокВыборка = Документы.РеализацияТоваровУслуг.Выбрать();
    Пока ДокВыборка.Следующий()Цикл
        Если ДокВыборка.Проведен Тогда
            Если ДокВыборка.Номер = "000000001"
                Тогда ДокОбразец = ДокВыборка.ПолучитьОбъект();
                Прервать;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    ДокументОбъект = ДокОбразец.Скопировать();
    
КонецЕсли;


EritikWoW
Если ЭтоНовый() Тогда    
ДокОбразец = Неопределено;
    ДокВыборка = Документы.РеализацияТоваровУслуг.Выбрать();
    Пока ДокВыборка.Следующий()Цикл
        Если ДокВыборка.Проведен Тогда
            Если ДокВыборка.Номер = "000000001"
                Тогда ДокОбразец = ДокВыборка.ПолучитьОбъект();
                Прервать;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    ДокументОбъект = ДокОбразец.Скопировать();
    ЭтотОбъект.Товары.Очистить();
    ЭтотОбъект.Услуги.Очистить();
    ЭлементыФормы.Контрагент.Значение = "";
    ЭлементыФормы.Склад.Значение = "";
    ЭлементыФормы.ДоговорКонтрагента.Значение = "";
КонецЕсли;

Более правильный вид кода
logist
Цитата(EritikWoW @ 14.08.14, 7:21) необходимо зарегистрироваться для просмотра ссылки
Более правильный вид кода

Издеваетесь? Вы или вопрос не читали, или поняли его как хотели, или еще очень далеки от программирования... (или сильно погрузли в 7.7)

Цитата(Pavlik1c @ 13.08.14, 22:05) необходимо зарегистрироваться для просмотра ссылки
Какую процедуру этой кнопки необходимо описать, чтобы сработала аналогия нажатия кнопки F9 по документу с номером "000000001"?


    ТекущаяСтрока = ЭлементыФормы.ТабличнаяЧасть1.ТекущиеДанные;
    Если ЗначениеЗаполнено(ТекущаяСтрока.НазваниеКолонкиСРеквизитомДокумента.Ссылка) Тогда
        НовыйДокумент = ТекущаяСтрока.НазваниеКолонкиСРеквизитомДокумента.Ссылка.Скопировать();
        // если надо просто создать документ
        НовыйДокумент.Записать();
        // если надо открыть форму
        ОткрытьЗначение(НовыйДокумент);
    КонецЕсли;

p.s. названия реквизитов замените на свои
Pavlik1c
Цитата(EritikWoW @ 14.08.14, 8:21) необходимо зарегистрироваться для просмотра ссылки
Если ЭтоНовый() Тогда    
ДокОбразец = Неопределено;
    ДокВыборка = Документы.РеализацияТоваровУслуг.Выбрать();
    Пока ДокВыборка.Следующий()Цикл
        Если ДокВыборка.Проведен Тогда
            Если ДокВыборка.Номер = "000000001"
                Тогда ДокОбразец = ДокВыборка.ПолучитьОбъект();
                Прервать;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    ДокументОбъект = ДокОбразец.Скопировать();
    ЭтотОбъект.Товары.Очистить();
    ЭтотОбъект.Услуги.Очистить();
    ЭлементыФормы.Контрагент.Значение = "";
    ЭлементыФормы.Склад.Значение = "";
    ЭлементыФормы.ДоговорКонтрагента.Значение = "";
КонецЕсли;

Более правильный вид кода


этот код вводить в какой процедуре?
Petre
Цитата(Pavlik1c @ 14.08.14, 9:24) необходимо зарегистрироваться для просмотра ссылки
этот код вводить в какой процедуре?

Если честно, этот код лучше никуда не вводить.
EritikWoW
Цитата(EritikWoW @ 14.08.14, 5:27) необходимо зарегистрироваться для просмотра ссылки
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)



Ну человек попросил... у себя я проверил нормально работает ! =)
Если вы считаете что он не коректен предложите свой вариант решения проблемы человека... а не дискридитируйте чужие предложения !
Petre
Не в обиду было сказано. Просто этот код некорректен. Да и logist же предложил код.
logist
Цитата(EritikWoW @ 14.08.14, 8:34) необходимо зарегистрироваться для просмотра ссылки
Если вы считаете что он не коректен предложите свой вариант решения проблемы человека... а не дискридитируйте чужие предложения !

Вообще-то я предложил свой вариант, я ж не виноват, что вы читать не умеете wink.gif

Цитата(EritikWoW @ 14.08.14, 8:34) необходимо зарегистрироваться для просмотра ссылки
у себя я проверил нормально работает ! =)

я же не сказал, что он не работает, код работает, вопросы к тому, что он делает и почему он делает это так. Можно сходить в магазин за угол, а можно вызывать такси, попасть в аварию, в больнице на операции случайно пришьют третью руку, потом пол года в койке, костыли, и попытка просто пешком сходить в магазин за угол. Так вот у вас второй вариант.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.