"На сервере - На клиенте" проблемка

  1. 9 г. назад
    15.10.2015 08:57:39 отредактировано Lenka_Boo

    Бухия 3.0
    Есть общий модуль с галками: клиент, сервер, внешнее соединение
    Туда из УФ в процедуру передается: ОбработкаТабличныхЧастейКлиентСервер.ПриИзмененииКоличествоЦена(ЭтаФорма, "Товары")

    	Элементы = Форма.Элементы;
    	Объект = Форма.Объект;
    
    	СтрокаТаблицы = Элементы[ИмяТаблицы].ТекущиеДанные;
    	//Мое
    	Если СтрокаТаблицы.Свойство("ДопКоличество") Тогда
    		ОбработкаТабличныхЧастейКлиентСервер.МояПроцедура_РасчетДопКоличества(СтрокаТаблицы.Номенклатура, СтрокаТаблицы);
    	КонецЕсли;	
    	//Мое
    

    Смысл в том, чтоб из реквизита номенклатуры взять данные для расчета ДопКоличества.

    Ни в этой процедуре, не после перехода в "МояПроцедура_РасчетДопКоличества(Номенклатура, ТекСтрока)" не могу с номенклатуры взять даже ее кода.

    Прописывать этот расчет отдельно во всех документах что-то не хочется...

    Че делать?

    Ответы: (1)
  2. (0) Сначала на сервер передай в процедуру &НаСервере
    а уже из неё вызывай ОбработкаТабличныхЧастейКлиентСервер.МояПроцедура_РасчетДопКоличества(СтрокаТаблицы.Номенклатура, СтрокаТаблицы);

  3. 15.10.2015 09:04:01 отредактировано Lenka_Boo

    Пробовала. Общий же модуль и процедура вроде как типовая.
    Если делаю:

    &НаСервере
    Процедура МояПроцедура_РасчетДопКоличества(Номенклатура, ТекСтрока) Экспорт

    Процедуру тогда вообще не видит

    Ответы: (8)
  4. 1. из процедуры на клиенте (УФ) передать в процедуру на сервере (УФ)
    2. из процедуры на сервере (УФ) вызвать процедуру общего модуля (с галкой сервер, без галки клиент)

    Ответы: (4)
  5. 15.10.2015 09:07:33 отредактировано Lenka_Boo

    (3) Я из УФ своего ничего не передаю. Там стандартная процедура "ПриИзмененииКоличества()"
    Я вклиниваюсь уже в общем модуле, чтоб документы не трогать.

    Ответы: (7)
  6. 15.10.2015 09:09:42 отредактировано Lenka_Boo

    Но в стандартной процедуре рассчитывается только цена. :( Подсмотреть полезного никак.

  7. Без фото сисег обучение клиент-серверной парадигме не производится

    Ответы: (9)
  8. 15.10.2015 09:21:59 отредактировано КитайскийМуй

    (4) Сделай так (всё в одном модуле):

        Элементы = Форма.Элементы;
        Объект = Форма.Объект;
    
        СтрокаТаблицы = Элементы[ИмяТаблицы].ТекущиеДанные;
        //Мое
        Если СтрокаТаблицы.Свойство("ДопКоличество") Тогда
            РасчетДопКоличестваНаСервере(СтрокаТаблицы.Номенклатура, СтрокаТаблицы);
        КонецЕсли;
    ...
    &НаСервере 
    Процедура РасчетДопКоличестваНаСервере(СтрокаТаблицы.Номенклатура, СтрокаТаблицы)
         ОбработкаТабличныхЧастейКлиентСервер.МояПроцедура_РасчетДопКоличества(СтрокаТаблицы.Номенклатура, СтрокаТаблицы);
    КонецПроцедуры	
        //Мое

    Именно об этом говорят тср и бешнога

    Ответы: (8)
  9. 15.10.2015 09:18:50 отредактировано Lenka_Boo

    (7) Перечитать (2)
    Так нормально отрабатывает только если расчет делать в форме документа.

    Ответы: (10)
  10. 15.10.2015 09:19:57 отредактировано Lenka_Boo

    (6) ПНХ Мне не до шуток. Время поджимает.

  11. (8) В общем модуле 1С считает, что код выполняется на клиенте. Значит делай другой общий модуль с галкой на сервере и оттуда уже вызывай функцию.

  12. Выношу. При Сохранении:

    {ОбщийМодуль.ОбработкаТабличныхЧастейКлиентСервер.Модуль(201,3)}: Переменная не определена (МоиМодули_Сервер)
    <<?>>МоиМодули_Сервер.МояПроцедура_РасчетДопКоличества(СтрокаТаблицы.Номенклатура, СтрокаТаблицы); (Проверка: Тонкий клиент)

  13. 15.10.2015 10:50:51 отредактировано Lenka_Boo

    Кароче, не переносится из одного общего модуля в другой :(
    Хотя в конфигураторе по F12 все открывается.

  14. Неужто таки придется документы девственности лишать?...

или зарегистрируйтесь чтобы ответить!