Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 05:06

Автоматизация назначения премии при проведении зарплаты

Автор FloralPashtet, 21 дек 2023, 13:35

0 Пользователей и 1 гость просматривают эту тему.

FloralPashtet

alexandr_ll,

Про ссылку тоже слышал, когда на производстве вопрос задал. Использую общий модуль, ибо я хотел обратиться оттуда к документу продажи и вернуть результат цикла.

Прошу прощения за глупый вопрос: а как эту ссылку провести, то есть, в каком виде передать?

alexandr_ll

FloralPashtet,Вы же передаете в общий модуль параметр "СтрокаДокумента.НаименованиеСотрудника", что мешает передать еще один параметр "Объект.Ссылка"
 
ПолученоИмя=ПроверкаДляПремии.ПроверкаНаПремию(СтрокаДокумента.НаименованиеСотрудника,Объект.Ссылка);

Общий модуль ПроверкаДляПремии
--------------------------------------------
Функция ПроверкаНаПремию(ПолученоИмя,ПолученОбъект)Экспорт
   ИтогоКоличество = 0;
   Для Каждого Строка из ПолученОбъект.АкционныеПродажи  Цикл
      Если ПолученоИмя = Строка.Сотрудник Тогда
         ИтогоКоличество = ИтогоКоличество + Строка.КоличествоТоваров;
      КонецЕсли
   КонецЦикла;
   Возврат ИтогоКоличество;
КонецФункции

FloralPashtet

alexandr_ll,

Спасибо за ответ!

В служебных сообщениях увидел, что синтаксических ошибок нет, но уже в тонком клиенте пришло это:

Поле объекта не обнаружено (АкционныеПродажи)
{ОбщийМодуль.ПроверкаДляПремии.Модуль(4)}:Для Каждого Строка из ПолученОбъект.АкционныеПродажи  Цикл
{Документ.РасчётЗарплаты.Форма.ФормаДокумента.Форма(7)}:ПолученоИмя=ПроверкаДляПремии.ПроверкаНаПремию(СтрокаДокумента.НаименованиеСотрудника,Объект.Ссылка);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
-------------------------------------------------------------------------------

Дело в том, что я запрашиваю табличную часть ДокументаПродажи "АкционныеПродажи" из модуля документа "РасчётЗарплаты". Он не видит "АкционныеПродажи".

alexandr_ll

FloralPashtet, А функция общего модуля выполняется на сервере или на клиенте?

FloralPashtet

alexandr_ll,

Ой, а я не указывал в общем модуле на это...

Объясняю по этому моменту:

У меня есть ещё общий модуль, в котором тоже не обговаривается выполнение, но он спокойно вытаскивает актуальную цену из регистра сведений. Сейчас приложу код:

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

Модуль Документа Продажи
----------------------------------------------------------------
&НаКлиенте
Процедура АкционныеПродажиЦенаЗаЕдиницуПриИзменении(Элемент)
    АктуальнаяЦена = Элементы.АкционныеПродажи.ТекущиеДанные;
    АктуальнаяЦена.ЦенаЗаЕдиницу= РаботаСоСправочниками.РозничнаяЦена(Объект.Дата, АктуальнаяЦена.НаименованиеТовара);
   
    СтрокаТабличнойЧасти = Элементы.АкционныеПродажи.ТекущиеДанные;
    СтрокаТабличнойЧасти.ИтоговаяСтоимость = СтрокаТабличнойЧасти.КоличествоТовара * СтрокаТабличнойЧасти.ЦенаЗаЕдиницу;
КонецПроцедуры

alexandr_ll

FloralPashtet, Метод "ПолучитьПоследнее" работает на сервере или на толстом клиенте. Это указано в СП.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск