8.х Помогите пожалуйста обратиться к процедуре

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Ленок87, 3 май 2012.

  1. TopicStarter Overlay
    Ленок87
    Offline

    Ленок87 Опытный в 1С

    Регистрация:
    7 фев 2012
    Сообщения:
    261
    Симпатии:
    0
    Баллы:
    26
    поскажите пожалуйста !!!
    мне в реализации нужно сделать кнопку при нажатии на которую в документ бы заносились ручные скидки.В окумент скидки заносятся только как теперь обратиться к стандартной процедуре при обращении к которой проводятся дальнейшие расчеты связанные с документом
    Код:
    &НаКлиенте
    Процедура Скидки(Команда)
    // Вставить содержимое обработчика.
    РассчитаемСкидки();
    ЭтаФорма.ОбновитьОтображениеДанных() ;
    Для каждого ПозицияРеализации из Объект.Товары Цикл
    Если ЗначениеЗаполнено(ПозицияРеализации.ПроцентРучнойСкидки)=Истина тогда
    [color=#008000]//стандартная процедура к которой нужно обратиться[/color]
    [color=#ff0000] ТоварыПроцентРучнойСкидкиПриИзменении[/color](ПозицияРеализации.Номенклатура);
    //   ТоварыПроцентРучнойСкидкиПриИзменении(Элемент);
    КонецЕсли;
    КонецЦикла;
    
    
    КонецПроцедуры
    &НаСервере
    Процедура  РассчитаемСкидки()
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    | РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    | РеализацияТоваровУслугТовары.Количество КАК Количество,
    | РеализацияТоваровУслугТовары.Сумма КАК Сумма,
    | РеализацияТоваровУслугТовары.Номенклатура.Родитель КАК НоменклатураРодитель
    |ИЗ
    | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |ГДЕ
    | РеализацияТоваровУслугТовары.Ссылка = &Документ
    |
    |СГРУППИРОВАТЬ ПО
    | РеализацияТоваровУслугТовары.Номенклатура.Родитель,
    | РеализацияТоваровУслугТовары.Номенклатура,
    | РеализацияТоваровУслугТовары.Количество,
    | РеализацияТоваровУслугТовары.Сумма
    |
    |УПОРЯДОЧИТЬ ПО
    | НоменклатураРодитель,
    | Номенклатура,
    | Количество,
    | Сумма" ;
    Запрос.УстановитьПараметр("Документ",Объект.Ссылка);
    ТЗ=Запрос.Выполнить().Выгрузить();
    ТЗПостав= Запрос.Выполнить().Выгрузить();
    //ТЗПостав.Колонки.Добавить("Номенклатура");
    ТЗ.Колонки.Добавить("ПолныйКод");
    ТЗПостав.Колонки.Добавить("ПолныйКод");
    Для каждого товар из ТЗ Цикл
    ПолныйКод=товар.Номенклатура.ПолныйКод();
    КодПапки=Лев(ПолныйКод,11);
    Родитель=Справочники.Номенклатура.НайтиПоКоду(КодПапки);
    товар.ПолныйКод= Родитель;
    КонецЦикла;
    Для каждого поставщики из ТЗПостав Цикл
    ПолныйКод=поставщики.Номенклатура.ПолныйКод();
    КодПапки=Лев(ПолныйКод,11);
    Родитель=Справочники.Номенклатура.НайтиПоКоду(КодПапки);
    поставщики.ПолныйКод= Родитель;
    КонецЦикла;
    ТЗПостав.Свернуть("ПолныйКод");
    //ТЗПостав.Колонки.Добавить("Товар");
    //ТЗПостав.Колонки.Добавить("Кол");
    //ТЗПостав.Колонки.Добавить("Сум");
    Количество=0;
    Сумма=0;
    Для Каждого поставщик из ТЗПостав Цикл
    Скидки=Новый Запрос;
    Скидки.Текст=
    "ВЫБРАТЬ
    | Скидки.ДатаОкон КАК ДатаОкон,
    | Скидки.Поставщик.Наименование КАК Поставщик,
    | Скидки.Количество,
    | Скидки.Скидка,
    | Скидки.Сумма
    |ИЗ
    | Справочник.Скидки КАК Скидки
    |
    |СГРУППИРОВАТЬ ПО
    | Скидки.ДатаОкон,
    | Скидки.Поставщик.Наименование,
    | Скидки.Количество,
    | Скидки.Скидка,
    | Скидки.Сумма
    |
    |УПОРЯДОЧИТЬ ПО
    | ДатаОкон УБЫВ";
    ТЗСкидки=Скидки.Выполнить().Выгрузить();
    Для Каждого Скидка из ТЗСкидки Цикл
    Если Скидка.ДатаОкон<=Объект.Дата тогда
    Если Поставщик.ПолныйКод.Наименование= Скидка.Поставщик тогда
    Для Каждого товар из ТЗ Цикл
    Если товар.ПолныйКод.Наименование=Поставщик.ПолныйКод.Наименование тогда
    //поставщик.Товар=товар.Номенклатура;
    Количество=Количество+товар.Количество;
    Сумма=Сумма+товар.Сумма;
    КонецЕсли;
    КонецЦикла;
    Если ЗначениеЗаполнено(Скидка.Количество)=Истина тогда
    Если Количество>=Скидка.Количество тогда
    //Скидка=Сумма-(Сумма*Скидка.Скидка/100);
    Для каждого позицияРеализации из Объект.Товары Цикл
    ПолныйКод= ПозицияРеализации.Номенклатура.ПолныйКод();
    КодПапки=Лев(ПолныйКод,11);
    Родитель=Справочники.Номенклатура.НайтиПоКоду(КодПапки);
    Если Родитель.Наименование=Поставщик.ПолныйКод.Наименование тогда
    позицияРеализации.ПроцентРучнойСкидки=Скидка.Скидка
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЕсли;
    Если ЗначениеЗаполнено(Скидка.Сумма)=Истина тогда
    Если Сумма>=Скидка.Сумма тогда
    Для каждого ПозицияРеализации из Объект.Товары Цикл
    //Скидка=Сумма-(Сумма*Скидка.Скидка/100);
    ПолныйКод= ПозицияРеализации.Номенклатура.ПолныйКод();
    КодПапки=Лев(ПолныйКод,11);
    Родитель=Справочники.Номенклатура.НайтиПоКоду(КодПапки);
    Если Родитель.Наименование= Поставщик.ПолныйКод.Наименование тогда
    //ПозицияРеализации.ПроцентРучнойСкидки=Скидка.Скидка;
    процент=Скидка.Скидка;
    //ЗначениеВРеквизитФормы(процент, "ЭтаФорма.ПроцентРучнойСкидки");
    //ЭтаФорма.Товары.ЗначениеВРеквизитФормы(процент,"процентРучнойСкидки");
    //ТоварыПроцентРучнойСкидкиПриИзменении(Элемент)
    [color=#ff0000] ЗначениеВРеквизитФормы[/color](процент,"ПозицияРеализации.процентручнойскидки");
    [color=#008000]//ЗначениеВРеквизитформы()пробовала через этот метод может что-то не [/color]
    [color=#008000]//так делаю не как с параметрами не разберусь[/color]
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    КонецПроцедуры
    
    
    
  2. Allizar
    Offline

    Allizar Опытный в 1С

    Регистрация:
    24 сен 2006
    Сообщения:
    413
    Симпатии:
    0
    Баллы:
    26
    Я так понимаю, это все же 8.2
    У кнопки есть свойство "ИмяКоманды". Там указываете команду, для которой написана эта процедура.
  3. shput
    Offline

    shput

    Регистрация:
    18 сен 2006
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    хм за глупый вопрос, а что значит ручная скидка, если не секрет...
  4. TopicStarter Overlay
    Ленок87
    Offline

    Ленок87 Опытный в 1С

    Регистрация:
    7 фев 2012
    Сообщения:
    261
    Симпатии:
    0
    Баллы:
    26
    Наверное я не правильно обяснила Я изменяю процент ручной скидки программно а потом хочу чтобы программа для тех позиций у которых это значение изминилось применила бы процедуру ТоварыПроцентРучнойСкидкиПриИзменении() , но из-за того чо эта процедура находиться НаКлиенте а присвоение скидок в процедуре НаСервере я немогу обатиться к ней.

    Или может нужно использовать метод ЗначениеВРеквизитФормы (с ним что-то не ладитья в параметрах чо-то не так)
  5. TopicStarter Overlay
    Ленок87
    Offline

    Ленок87 Опытный в 1С

    Регистрация:
    7 фев 2012
    Сообщения:
    261
    Симпатии:
    0
    Баллы:
    26
    Всем спасибо за отклик разобралась

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