8.х В конфиурацию УТ в реализацию добавляю процедуру

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

  1. TopicStarter Overlay
    Ленок87
    Offline

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

    Регистрация:
    7 фев 2012
    Сообщения:
    261
    Симпатии:
    0
    Баллы:
    26
    В конфиурацию УТ в реализацию добавляю процедуру в которой автоматически рассчитываются ручные скидки .Можно ликаким-либо образом заполнив скидки обратиться к процедуре ТоварыПроцентРучнойСкидкиПриИзменении, которая &НаКлиенте ?
  2. PavelBaryshev
    Offline

    PavelBaryshev Опытный в 1С

    Регистрация:
    9 сен 2008
    Сообщения:
    316
    Симпатии:
    0
    Баллы:
    26
    Покажите текст вашей процедуры
  3. TopicStarter Overlay
    Ленок87
    Offline

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

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

    PavelBaryshev Опытный в 1С

    Регистрация:
    9 сен 2008
    Сообщения:
    316
    Симпатии:
    0
    Баллы:
    26
    ну в конце процедуры своей и вставляйте вызов
  5. TopicStarter Overlay
    Ленок87
    Offline

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

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

    PavelBaryshev Опытный в 1С

    Регистрация:
    9 сен 2008
    Сообщения:
    316
    Симпатии:
    0
    Баллы:
    26
    ДокОбъект.ТоварыПроцентРучнойСкидкиПриИзменении();

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