Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
28 Сен 2020, 23:39
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Пишу первую программу...Помогите!!!  (Прочитано 5238 раз)

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

Оффлайн Julia2010

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-04-30
  • Сайт: 
Что я делаю не так???

Спр.ТекущийЭлемент().полннаименование =   - Выдает верный результат
Спр.ТекущийЭлемент() .РеквизитПоиска    =   - Выдает ошибку: Поле агрегатного объекта не обнаружено (РеквизитПоиска),
хотя РеквизитПоиска = "полннаименование"


Оффлайн Tatitutu

А что ты хочешь сделать ? Суть задачи напиши

И лучше писать так
ТекСпр=Спр.ТекущийЭлемент();

//получили ссылку на элемент справочника
//дальше по умолчанию у него есть реквизит Код и Наименование
//остальные ты сам прописываешь в конфигураторе

ТекСпр.Код //будет код справочника
ТекСпр.Наименование //будет наиенование
а ТекСпр.Непонятночто //если нет реквизита такого будет ошибка

*  MAGAZKA - лучшая программа для розничного магазина (с) *

Оффлайн Julia2010

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-04-30
  • Сайт: 
У меня поиск по полям справочника "Номенклатура",
РеквизитПоиска - переменная, содержит название поля, по-которому будет идти поиск.
Спр = Объект(Справочник.Номенклатура)

А сам справочник уже рабочий, все поля есть, в том числе и "ПолнНаименование"

Оффлайн tolik

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-05-19
  • Сайт: 
Здравствуйте помогите чайнику.
1С Предприятие 7.7 Торговля и склад 9.2
Необходимо сделать вывод трех цен в форме подбора номенклатуры (закупочная оптовая основная)
вот текст но он выводит тока оптоаую и основную

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

Не пойму в чем ошибка

Оффлайн Tatitutu

в ДНК (шутка)
почему не все функцию выложил , где Возврат
из того что видно
зачем два раза одни и тот же объект создавать ?
  ТипЦеныЗак = СоздатьОбъект("Справочник.ТипыЦен");
   ТипЦеныОпт = СоздатьОбъект("Справочник.ТипыЦен");
а вот то что ты пытаешся найти присваиваешь одной и той же переменной
 СтрокаЦены

т.е. нашел цену  СтрокаЦены=200, следующую цену нашел перезаписал  СтрокаЦены=300 и.т.д

могу поспорить в конце стоит Возврат  СтрокаЦены;


*  MAGAZKA - лучшая программа для розничного магазина (с) *

Оффлайн tolik

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-05-19
  • Сайт: 
Конец функции выглядит так:   
//Если ПоказыватьОстатокПоФирме = 0 Тогда
      Если ПустоеЗначение(ТовОстаток) = 0 Тогда
         СтрокаОстатка = " остаток: " + глФРМКоличество(ТовОстаток) + " " + ТовЕдиница;
      Иначе   
         СтрокаОстатка = "нет в наличии";
      КонецЕсли;
   //Иначе
   //   Если (ПустоеЗначение(ТовОстаток) = 0) и (ПустоеЗначение(ТовОстатокПоФирме) = 0) Тогда
   //      СтрокаОстатка = " остаток на складе: " + глФРМКоличество(ТовОстаток) + " " + ТовЕдиница + "," +
   //                              " на фирме: "  + глФРМКоличество(ТовОстатокПоФирме)  + " " + ТовЕдиница;
   //   Иначе                     
   //      СтрокаОстатка = "нет в наличии";
   //   КонецЕсли;
   //КонецЕсли;
   
   Возврат СтрокаЦены + " - " + СтрокаОстатка;
   
КонецФункции // СформироватьИнфНадпись()

Когда выбираем какой нибудь товар в строке информации об номенклатуре должно выводится:

Закуп.: 30,00 руб. Опт.: 37,00 руб. Осн.: 42,00 руб. остаток - 140 шт.

А у меня проподает  Закуп (закупочная цена)

Оффлайн tolik

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-05-19
  • Сайт: 
Спасибо Tatitutu

Вопрос решен вот исходный код может кому пригодиться :zebzdr: :zebzdr: :zebzdr:

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

   //Если ПоказыватьОстатокПоФирме = 0 Тогда
      Если ПустоеЗначение(ТовОстаток) = 0 Тогда
         СтрокаОстатка = " остаток: " + глФРМКоличество(ТовОстаток) + " " + ТовЕдиница;
      Иначе   
         СтрокаОстатка = "нет в наличии";
      КонецЕсли;
   //Иначе
   //   Если (ПустоеЗначение(ТовОстаток) = 0) и (ПустоеЗначение(ТовОстатокПоФирме) = 0) Тогда
   //      СтрокаОстатка = " остаток на складе: " + глФРМКоличество(ТовОстаток) + " " + ТовЕдиница + "," +
   //                              " на фирме: "  + глФРМКоличество(ТовОстатокПоФирме)  + " " + ТовЕдиница;
   //   Иначе                     
   //      СтрокаОстатка = "нет в наличии";
   //   КонецЕсли;
   //КонецЕсли;
   
   Возврат СтрокаЦены + " - " + СтрокаОстатка;
   
КонецФункции // СформироватьИнфНадпись()


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
74 Сообщений
oooo800
33 Сообщений
Дмитрий Джей Дмитрий Джей
30 Сообщений
IL2016
29 Сообщений
antoneus antoneus
25 Сообщений
LexaK
25 Сообщений
Ann_
16 Сообщений
DmitriyF DmitriyF
16 Сообщений
мадам брошкина
13 Сообщений
alexandr_ll
12 Сообщений

* Кто онлайн

  • Точка Гостей: 236
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal