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

Автор Тема: Формирование отчета (упорядочить по шаблону)  (Прочитано 1085 раз)

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

Оффлайн vovka14141

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-07-10
  • Сайт: 
  • Профессия: Программист 8.1
Помогите пожалуйста разобраться с ошибкой
{Форма.ФормаОтчета.Форма(139)}: Преобразование значения к типу Число не может быть выполнено
Строка.Параметры.НетДоМинОст       = ?(Число(МинОст.Наименование)-Выборка.свободныйОстаток<0,0,Число(МинОст.Наименование)-Выборка.СвободныйОстаток);


Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
vovka14141, не может платформа преобразовать в число переданный параметр, в вашем случае - "МинОст.Наименование"

Оффлайн vovka14141

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-07-10
  • Сайт: 
  • Профессия: Программист 8.1
vovka14141, не может платформа преобразовать в число переданный параметр, в вашем случае - "МинОст.Наименование"
Я понимаю, только не знаю как исправить это... Эту обработку создавал не я и не могу найти исправление этой ошибки:(
Процедура КнопкаСформироватьНажатие(Кнопка)
Ликв    = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Ликвидность");
Мин     = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Минимальный остаток");
МинОст0 = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("0");   
Пост    = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Поставщик");

   
ТабДок= новый ТабличныйДокумент;     
Макет=получитьмакет("Макет");         
Шапка=Макет.ПолучитьОбласть("Шапка");
Шапка.Параметры.ДатаНач = ДатаНач;
Шапка.Параметры.ДатаКон = ТекущаяДата();
Шапка.Параметры.ВыбЗнач = ВыбЗнач;
ТабДок.Вывести(Шапка);    

Запрос = Новый Запрос("   
|Выбрать
|Об.объект Как Номенклатура,
|Об.Объект.БазоваяЕдиницаИзмерения Как Единица,
|Об.Значение Как ЗначениеСвойства,
|Об.Объект.Артикул Как Артикул,
|Цены.Цена   Как ЗакупочнаяЦена,
|ЦеныПрод.ПроцентСкидкиНаценки КАК ПроцентНаценки,
|ТоварыНаСкладах.КоличествоНачальныйОстаток Как НачальныйОстаток,
|ТоварыНаСкладах.КоличествоПриход Как Приход,
|ТоварыНаСкладах.КоличествоРасход Как Расход,
|ТоварыНаСкладах.КоличествоКонечныйОстаток Как КонечныйОстаток,
|ЕСТЬNULL(РегЗаказы.КоличествоОстаток,0)              КАК КонечныйРезерв,
|ЕСТЬNULL(ТоварыНаСкладах.КоличествоКонечныйОстаток,0) - ЕСТЬNULL(РегЗаказы.КоличествоОстаток,0) КАК СвободныйОстаток,
|ЕСТЬNULL(ЗаказыПост.КоличествоОстаток,0) КАК ЗаказаноПоставщику
|Из РегистрСведений.ЗначенияСвойствОбъектов Как Об
|      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ТекДата, ТипЦен = &ТипЦены) КАК Цены
|      ПО Об.Объект = Цены.Номенклатура
|      Внутреннее СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ТекДата, ТипЦен = &ТипЦены1) КАК ЦеныПрод
|      ПО Об.Объект = ЦеныПрод.Номенклатура
|      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач,&ДатаКон , , ,Склад = &Склад) КАК ТоварыНаСкладах
|      ПО Об.Объект = ТоварыНаСкладах.Номенклатура
|      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаКон, Склад = &Склад) КАК РегЗаказы
 |       ПО Об.Объект = РегЗаказы.Номенклатура
  |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Остатки(&ДатаКон,) КАК ЗаказыПост
   |     ПО Об.Объект = ЗаказыПост.Номенклатура   
|ГДЕ Об.Значение   = &ВыбЗнач
|Упорядочить ПО Об.Объект.Наименование"); 
Запрос.УстановитьПараметр("ВыбЗнач",ВыбЗнач);
Запрос.УстановитьПараметр("ТипЦены",Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000001"));
Запрос.УстановитьПараметр("ТипЦены1",Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000009"));
Запрос.УстановитьПараметр("ТекДата",ТекущаяДата());
Запрос.УстановитьПараметр("ДатаНач",ДатаНач);
Запрос.УстановитьПараметр("ДатаКон",КонецДня(ТекущаяДата()));
Запрос.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоКоду("000000001"));
Выгрузка  = Запрос.Выполнить().Выгрузить();   

Строка = Макет.ПолучитьОбласть("Строка");

Если ДляКириллова Тогда
   Список = ВариантДляКириллова();
   Для Каждого Элем ИЗ Список Цикл
      Артикул = Элем.Значение;
      Выборка = Выгрузка.Найти(Артикул);
      Если Выборка <> Неопределено Тогда
         Ном                                = Выборка.Номенклатура;
         МинОст                             = Свво(Ном,Мин);
         
         Попытка
            Если Миност = Неопределено ИЛИ Миност.Наименование = "" Тогда            
               МинОст = МинОст0;
            КонецЕсли;    
         Исключение
            МинОст = МинОст0;
         КонецПопытки;
         
         Ликвид                             = Свво(Ном,Ликв);
         Поставщик                          = Свво(Ном,Пост);
         
         Строка.Параметры.Ном               = Ном;
         Строка.Параметры.Код               = Ном.Код;
         Строка.Параметры.ПечЕд             = Выборка.Единица;
         Строка.Параметры.ПечАртикул        = Выборка.Артикул;
         Строка.Параметры.Пост              = Поставщик;
         Строка.Параметры.ПечЦена           = Выборка.ЗакупочнаяЦена;
         Строка.Параметры.ПечПроцент        = Выборка.ПроцентНаценки;
         Строка.Параметры.ПечМинОст         = МинОст;
         Строка.Параметры.Ликв              = Ликвид;   
         Строка.Параметры.ПечНачОст         = Выборка.НачальныйОстаток;
         Строка.Параметры.ПечПриход         = Выборка.Приход;
         Строка.Параметры.ПечРасход         = Выборка.Расход;
         Строка.Параметры.ПечКонОст         = Выборка.КонечныйОстаток;
         Строка.Параметры.ПечКонОстР        = Выборка.КонечныйРезерв;
         Строка.Параметры.ОстатокБезРезерва = Выборка.СвободныйОстаток;
         Строка.Параметры.НетДоМинОст       = ?(Число(МинОст.Наименование)-Выборка.свободныйОстаток<0,0,Число(МинОст.Наименование)-Выборка.СвободныйОстаток);
            Строка.Параметры.КолЗаказ          = Выборка.ЗаказаноПоставщику - Выборка.КонечныйРезерв;        
            ТабДок.Вывести(Строка);
            Выгрузка.Удалить(Выборка);
         КонецЕсли;
      КонецЦикла;
      
   КонецЕсли;   
         
   Для Каждого Выборка ИЗ Выгрузка Цикл
      
      Ном                                = Выборка.Номенклатура;
      МинОст                             = Свво(Ном,Мин);
      
      Если ТипЗнч(МинОст)<>Тип("Число") Тогда
         Попытка
            Если  Миност = Неопределено Тогда
               МинОст = 0;
            КонецЕсли;    
         Исключение
            МинОст = 0;
         КонецПопытки;   
      КонецЕсли;
      
      //Попытка
      //   Если Миност = Неопределено ИЛИ Миност.Наименование = "" Тогда            
      //      МинОст = МинОст0;
      //   КонецЕсли;    
      //Исключение
      //   МинОст = МинОст0;
      //КонецПопытки;
      
      Ликвид                             = Свво(Ном,Ликв);
      Поставщик                          = Свво(Ном,Пост);
      
      Строка.Параметры.Ном               = Ном;
      Строка.Параметры.Код               = Ном.Код;
      Строка.Параметры.ПечЕд             = Выборка.Единица;
      Строка.Параметры.ПечАртикул        = Выборка.Артикул;
      Строка.Параметры.Пост              = Поставщик;
      Строка.Параметры.ПечЦена           = Выборка.ЗакупочнаяЦена;
      Строка.Параметры.ПечПроцент        = Выборка.ПроцентНаценки;
      Строка.Параметры.ПечМинОст         = МинОст;
      Строка.Параметры.Ликв              = Ликвид;   
      Строка.Параметры.ПечНачОст         = Выборка.НачальныйОстаток;
      Строка.Параметры.ПечПриход         = Выборка.Приход;
      Строка.Параметры.ПечРасход         = Выборка.Расход;
      Строка.Параметры.ПечКонОст         = Выборка.КонечныйОстаток;
      Строка.Параметры.ПечКонОстР        = Выборка.КонечныйРезерв;
      Строка.Параметры.ОстатокБезРезерва = Выборка.СвободныйОстаток;
      Строка.Параметры.НетДоМинОст       = ?(МинОст-Выборка.свободныйОстаток<0,0,МинОст-Выборка.СвободныйОстаток);
      Строка.Параметры.КолЗаказ          = Выборка.ЗаказаноПоставщику - Выборка.КонечныйРезерв;        
      ТабДок.Вывести(Строка);
   КонецЦикла;
   ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_ТОРГ12";
   ТабДок.Показать();
   
   СохранитьЗначение("Свойство", Свойство);
   СохранитьЗначение("ВыбЗнач",  ВыбЗнач); 
КонецПроцедуры

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Лучший вариант исправления - сделать все заново по-человечески. Не часто увидишь настолько кривой код. Вместо того, чтобы добавить реквизит или на худой конец свойство (если например конфигурация на поддержке и изменения запрещены) типа число тут делается предположение, что все наименования состоят из цифр и делается преобразование строки в число.

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


Теги:
 

Печатная форма "ЧекККМ" для "Отчета о розничных продажах"

Автор Игорь ПолищукРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 7073
Последний ответ 01 Июн 2011, 20:39
от Шурыгин Иван Сергеевич
Ошибка при выгрузке отчета "Прибыль"

Автор VasilРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4105
Последний ответ 28 Апр 2011, 14:34
от MaryaAlbertovna
Создание отчета "Отсутствие заказов"

Автор dronspartak9@gmail.comРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3888
Последний ответ 16 Апр 2014, 15:09
от dronspartak9@gmail.com
Программирование отчета "Движения на складах"

Автор ЛунатикРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1970
Последний ответ 05 Апр 2016, 10:15
от vitasw
Нужна помощь в формировании отчета "Преобразование значения к типу Дата не может быть выполнено"

Автор STLuka1337Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2101
Последний ответ 14 Ноя 2014, 13:24
от cska-fanat-kz

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
62 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 241
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal