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

Заполнение ТЧ на форме на сервере

Автор Sasha1C, 24 апр 2024, 14:10

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

Sasha1C

Максим75, Сейчас база выглядит так. Смотрите документ ПродажаКниг и регистрСведений ЦеныНаКниги. Все остальное просьба строго не судить. Пароля на  пользователя администратор нет. По поводу того, что бы отдельными функциями сделать(можно, но сейчас лучше попровать что-то новое), в этом задании хотел научится получать несколько значений одной функцией. PS посмотрел типовые, а там все четко и стандартизировано, и если получать все значению отдельной функцией, то у меня в модуле будет слишком много ненужной воды ;)

Максим75

Sasha1C, НаКлиенте
Процедура ПроданныеКнигиНазваниеКнигиПриИзменении(Элемент)

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

КонецПроцедуры

&НаКлиенте
Функция АвторПоКниге(НазваниеКниги)

Возврат НаКлиенте.ПолучитьАвтораПоКниге(НазваниеКниги);

 КонецФункции
 
&НаСервере
Функция ПолучениеЦен(НазваниеКниги, Период)

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

Данные = РегистрыСведений.ЦеныНаКниги.ПолучитьПоследнее(Период,Отбор);
ЦенаПоставщика = Данные.ЦенаПоставщика;                                     

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

Данные = РегистрыСведений.ЦеныНаКниги.ПолучитьПоследнее(Период,Отбор);
ЦенаПродажи = Данные.ЦенаПродажи;

ДанныеВернуть = Новый Структура("ЦенаПоставщика,ЦенаПродажи",ЦенаПоставщика,ЦенаПродажи);

Возврат ДанныеВернуть;


 КонецФункции

как то так. или запросом выбирать.

Sasha1C

Максим75, Тот код тоже не выдавал нужных значений, так я чу-чуть переработал ваш код под себя, как умею, и получился рабочий вариант, может не очень оптимальный, но рабочий. Но большое спасибо за ваш вариант использования Структуры, я такого еще не видел.
   
   
    Отбор  = Новый Структура;
    Отбор.Вставить("Книга", НазваниеКниги);
    Отбор.Вставить("ВидЦены", Перечисления.ВидЦен.Закупочная);
    Данные = РегистрыСведений.ЦеныНаКниги.ПолучитьПоследнее(Период,Отбор);
    ЦенаПоставщика = Данные.ЦенаПоставщика;
   
    Отбор1 = Новый Структура;
    Отбор1.Вставить("Книга", НазваниеКниги);
    Отбор1.Вставить("ВидЦены", Перечисления.ВидЦен.Розничная);
   
    ДанныеПокупки = РегистрыСведений.ЦеныНаКниги.ПолучитьПоследнее(Период,Отбор);
    ДанныеПродажи = РегистрыСведений.ЦеныНаКниги.ПолучитьПоследнее(Период,Отбор1);
   
    ЦенаПоставщика = ДанныеПокупки.ЦенаПоставщика;
    ЦенаПродажи = Данныепродажи.ЦенаПродажи;
   
    ДанныеВернуть = Новый Структура("ЦенаПоставщика,ЦенаПродажи",ЦенаПоставщика,ЦенаПродажи);
       
    Возврат ДанныеВернуть;
   
             

Максим75

Sasha1C, да Бога ради.
я то код на вашей же базе и тестанул, прежде чем высылать.

Теги: Сервер ТЧ 

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

Рейтинг@Mail.ru

Поиск