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

Справочники

Автор kozak22a, 25 июл 2012, 10:34

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

kozak22a

Здравствуйте. Подскажите пожалуйста. У меня 1с 7.7.
Есть два справочника "ВидыОпераций" и "Маршрутка".
В справочнике "Маршрутка" выбираем элемент из спр."ВидыОпераций" и нужно сделать что бы автоматически подтягивало цену на операцию и записывало её в справочник "Маршрутка".
Как ето можно реализовать?
Часть кода:
Процедура ИзмОпер()
   Если Опер.Выбран()=1 Тогда
   Наименование = Опер.Наименование;
   Цена = ???????????
   КонецЕсли;
КонецПроцедуры

Yura063

Цена = Опер.Цена; // Если у вас там цена хранится!
Помогли, отблагодари!

kozak22a

Цитата: Yura063 от 25 июл 2012, 11:03
Цена = Опер.Цена; // Если у вас там цена хранится!
Уже пробивал, ничего.
Наименование в справочник переносит а вот цену нет, хотя цена в спр."ВидыОпераций" указана

kozak22a


kozak22a


Yura063

проверьте идентификатор! В свойствах!   
Помогли, отблагодари!

kozak22a

в идентификаторах ошибок нет

kozak22a

Вот полный код справочника. Может в нем что то не так :dfbsdfbsdf:


Перем флВверх;
// ===============================
Процедура УдалитьСтроку()   
   Если Вопрос("Удалить текущую строку? ","Да+Нет") = "Да" Тогда
      СпрМ = СоздатьОбъект("Справочник.спрМаршрутка");       
      СпрМ.НайтиЭлемент(ТекущийЭлемент());
      СпрМ.Удалить(1);                                 
      СпрМ  =0;
   КонецЕсли;   
КонецПроцедуры
// ===============================
Процедура ПриОткрытии() 
   Если ТипЗначенияСтр(Форма.Параметр)="Строка" тогда
      СпрТМЦ=СоздатьОбъект("Справочник.ТМЦ");
      СпрТМЦ.НайтиПоКоду(Форма.Параметр,0);
      ИспользоватьВладельца(СпрТМЦ.ТекущийЭлемент());   
      СпрТМЦ=0;
   КонецЕсли;   
КонецПроцедуры
// ===============================
Процедура ОсвободитьКод(знач код)
   СпрМ = СоздатьОбъект("Справочник.спрМаршрутка");
   СпрМ.ИспользоватьВладельца(ТекущийЭлемент().Владелец);   
   СпрМ.ИспользоватьРодителя(ТекущийЭлемент().Родитель);
   Если СпрМ.НайтиПоКоду(код,1)=1 тогда
      _новКод=число(код)+1*флВверх;
      ОсвободитьКод(_новКод);
      СпрМ.Код = _новКод;
      СпрМ.Записать();
   КонецЕсли;   
   СпрМ=0;
КонецПроцедуры
// ===============================
Процедура Вып() 
   текКод=число(ТекущийЭлемент().Код);
   Если (текКод = _н)или(_н<=0) тогда
   иначе   
      Если Вопрос("Переставить текущую строку в позицию №"+_н+" ?","Да+Нет") = "Да" Тогда 
         СпрМ = СоздатьОбъект("Справочник.спрМаршрутка");
         СпрМ.ИспользоватьВладельца(ТекущийЭлемент().Владелец);
         СпрМ.ИспользоватьРодителя(ТекущийЭлемент().Родитель);
         СпрМ.НайтиЭлемент(текущийЭлемент());   
         СпрМ.Код=999;
         СпрМ.Записать();
         СпрМ.НайтиПоКоду(999,1);                 
         флВверх=-1;
         Если _н<число(текКод) тогда
            флВверх=1;
         КонецЕсли;
         ОсвободитьКод(_н);
         СпрМ.Код = _н;
         СпрМ.Записать();
         СпрМ=0;
      КонецЕсли;   
   КонецЕсли;   
КонецПроцедуры

//================================
Функция ИтогМЛ()
   Перем ИтМЛ;
   Спр = СоздатьОбъект("Справочник.ТМЦ");
   СпрМЛ = СоздатьОбъект("Справочник.спрМаршрутка");
   Мар = СоздатьОбъект("Справочник.спрМаршрутка");
   Влад = ИспользоватьВладельца();   
   Мар.ИспользоватьВладельца(Влад);
   Если Мар.НайтиПоКоду(100)=1 Тогда 
      СпрМЛ.ИспользоватьРодителя(Мар.ТекущийЭлемент());
   КонецЕсли;
   Если Влад<>ПолучитьПустоеЗначение(Спр) тогда
      ИтМЛ = 0;
      СпрМЛ.ИспользоватьВладельца(Влад);
      СпрМЛ.ВыбратьЭлементы();
      Пока СпрМЛ.ПолучитьЭлемент()=1 Цикл
         ИтМЛ = ИтМЛ + СпрМЛ.Цена.Получить(ПолучитьДатуТА())*СпрМЛ.Кво.Получить(ПолучитьДатуТА());
      КонецЦикла;
      Возврат Формат(ИтМЛ,"Ч010.2");
   Иначе
      Возврат "";
   КонецЕсли;   
КонецФункции                      
//================================

Процедура ИзмТМЦ()
   Если ТМЦ.Выбран()=1 Тогда
      Цена = ТМЦ.СС;   
      Наименование = ТМЦ.Наименование;
   КонецЕсли;
КонецПроцедуры   

// ===============================   

Процедура ИзмОпер()
    Если Опер.Выбран()=1 Тогда
      Наименование = Опер.Наименование;
   КонецЕсли;   
КонецПроцедуры   


Процедура ИзмУчасток()
    Если (Участок.Выбран()=1)и(Участок.ЭтоГруппа()=1) Тогда
      Сообщить("В поле Участок нельзя выбирать группу!!!","!");
   КонецЕсли;   
КонецПроцедуры

Процедура ПриЗаписи()
    Если (Участок.Выбран()=1)и(Участок.ЭтоГруппа()=1) Тогда
      Сообщить("В поле Участок нельзя выбирать группу!!!","!");
      СтатусВозврата(0);
   КонецЕсли;   
КонецПРоцедуры

kozak22a

С справочника   если брать цену с справочника ТМЦ то все нормально
   Цена = ТМЦ.СС;   
Но для Операций не работает

Yura063

Выложи скрин Справочника операций и свойство цены!
Помогли, отблагодари!

Теги:

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

Рейтинг@Mail.ru

Поиск