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

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

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


Теги:
 


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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
177 Сообщений
ilyay ilyay
69 Сообщений
oleg-x
48 Сообщений
AIFrame
46 Сообщений
alex0402
46 Сообщений
andron81_81
41 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal