Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Преобразование значения к типу Число не может быть выполнено  (Прочитано 29310 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
1СНИК
Интересующийся

kz
Offline Offline

« : 01-09-2012 07:40 » 

Всем привет вот код
Код: (1C v8)
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|       СчетФактураВыданный.Ссылка
|ИЗ
|       Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
|       СчетФактураВыданный.ДокументОснование "
%"+ДокументОснование+"%" ";

Запрос.УстановитьПараметр("ДокументОснование", ДокПодчРеал);         

//РезультатЗапроса = Запрос.Выполнить();

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
//Если РезультатЗапроса.Следующий() Тогда
        СФ = Выборка.Ссылка.ПолучитьОбъект();
        СФ.ДокументОснование = "";
    Данные_по_оптовикам.Параметры.Дата_счета_фак=СФ.Дата;          
        //СФ.Записать(РежимЗаписиДокумента.Запись);
КонецЦикла;

Не могу понять где проблема ? Ошибка указана в теме.
« Последнее редактирование: 02-09-2012 07:14 от Kivals » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 02-09-2012 07:16 » 

Указывай в какой строке ошибка - 1С это пишет.
ИМХО ты неверно работаешь со строкой запроса. Вот это:
Код: (1C v8)
|       СчетФактураВыданный.ДокументОснование "%"+ДокументОснование+"%" ";
абсолютно не понятно.
Записан
1СНИК
Интересующийся

kz
Offline Offline

« Ответ #2 : 07-09-2012 08:43 » 

Указывай в какой строке ошибка - 1С это пишет.
ИМХО ты неверно работаешь со строкой запроса. Вот это:
Код: (1C v8)
|       СчетФактураВыданный.ДокументОснование "%"+ДокументОснование+"%" ";
абсолютно не понятно.

Ты прав барт. Он на эту строку и ругается. А как там должно быть ? Раньше писал
Вот  это СчетФактураВыданный.ДокументОснование ДокументОснование ";
вызывает ошибку тоже. Тип нельзя сравнивать разные типы значения.



Добавлено через 20 часов, 53 минуты и 18 секунд:
Вот так

{Отчет.Отчет_По_АКЦИЗ.Форма.ФормаОтчета.Форма(56)}: Преобразование значения к типу Число не может быть выполнено
Запрос.Текст = "

А 56 строка это - Запрос.Текст = "

Добавлено через 17 минут и 15 секунд:
Вообще пример отсюда

http://softmaker.kz/articles.php?cat=5&id=74

Но из за этой строки -  СчетФактураВыданный.ДокументОснование = &ДокументОснование";

Выдает такую ошибку -

{Отчет.Отчет_По_АКЦИЗ.Форма.ФормаОтчета.Форма(68)}: Ошибка при вызове метода контекста (Выполнить)
Выборка = Запрос.Выполнить().Выбрать();
по причине:

по причине:
{(7, 40)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
 неограниченной длины и поля несовместимых типов.
СчетФактураВыданный.ДокументОснование <<?>>= &ДокументОснование
« Последнее редактирование: 08-09-2012 05:53 от 1СНИК » Записан
Pshelti
Интересующийся

ru
Offline Offline

« Ответ #3 : 09-09-2012 18:42 » new

СчетФактураВыданный.ДокументОснование <<?>>= &ДокументОснование


А ДокументОснование задаётся для запроса или может забыл это сделать?
Записан
1СНИК
Интересующийся

kz
Offline Offline

« Ответ #4 : 10-09-2012 02:39 » 

Нет не забыл. Я просто не знаю  Отлично. Счет фактура выданные создаются на основе документа Реализация товаров. Вы это имеете ввиду ?
Попробую.
Записан
Pshelti
Интересующийся

ru
Offline Offline

« Ответ #5 : 10-09-2012 04:10 » 

Нет не забыл. Я просто не знаю  Отлично. Счет фактура выданные создаются на основе документа Реализация товаров. Вы это имеете ввиду ?
Попробую.

Ну да. Улыбаюсь Что-то я и не посмотрелд, что есть установка параметра.

А вот так:

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|       СчетФактураВыданный.Ссылка
|ИЗ
|       Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
|       СчетФактураВыданный.ДокументОснование = &ДокументОснование;

Запрос.УстановитьПараметр("ДокументОснование", ДокПодчРеал);   


а ДокПодчРеал есть документ Реализации товара, т.е. как и сам заметил - основание счёта-фактуры.
Записан
1СНИК
Интересующийся

kz
Offline Offline

« Ответ #6 : 10-09-2012 04:18 » 

Нет не забыл. Я просто не знаю  Отлично. Счет фактура выданные создаются на основе документа Реализация товаров. Вы это имеете ввиду ?
Попробую.

Ну да. Улыбаюсь Что-то я и не посмотрелд, что есть установка параметра.

А вот так:

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|       СчетФактураВыданный.Ссылка
|ИЗ
|       Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
|       СчетФактураВыданный.ДокументОснование = &ДокументОснование;

Запрос.УстановитьПараметр("ДокументОснование", ДокПодчРеал);   


а ДокПодчРеал есть документ Реализации товара, т.е. как и сам заметил - основание счёта-фактуры.

На такой формат СчетФактураВыданный.ДокументОснование = &ДокументОснование ругается вот так.
 " нельзя сравнивать разные типы значения "

А если переделать на такой формат  "%"+ДокументОснование+"%" , то пишет     
" Преобразование значения к типу Число не может быть выполнено ". Не знают как еще писать.......
Записан
Pshelti
Интересующийся

ru
Offline Offline

« Ответ #7 : 10-09-2012 05:35 » 

а ДокПодчРеал чему равно? Напиши может тогда полностью код функции, чтоб было понятно почему у тебя ругается на разные типы.
Записан
1СНИК
Интересующийся

kz
Offline Offline

« Ответ #8 : 10-09-2012 09:38 » 

а ДокПодчРеал чему равно? Напиши может тогда полностью код функции, чтоб было понятно почему у тебя ругается на разные типы.
вот полный код
Код: (1C v8)
Процедура КнопкаСформироватьНажатие(Кнопка)
  ТабДок=Новый ТабличныйДокумент;
  Макет=ПолучитьМакет("Отчет_АКЦИЗ");
 
  Главная_Шапка=Макет.ПолучитьОбласть("Главная_Шапка");
  ШапкаТаблицы=Макет.ПолучитьОбласть("ШапкаТаблицы");
  ТабДок.Вывести(Главная_Шапка);
  ТабДок.Вывести(ШапкаТаблицы);

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

     
      Для каждого СтрТабЧасти из ДокПодчРеал.Товары Цикл
          // Сообщить(Строка(СтрТабЧасти.Номенклатура)+"//"+Строка(СтрТабЧасти.Количество));
         
   //******************ПОРЯДКОВЫЙ НОМЕР************************
       ном=ном+1;
   
    Данные_по_оптовикам.Параметры.ном=ном;
          //******************РНН контрагента*************************
    Данные_по_оптовикам.Параметры.РНН=ДокПодчРеал.Контрагент.РНН;
          //******************Наименование контрагента****************
    Данные_по_оптовикам.Параметры.Наим_получ=ДокПодчРеал.Контрагент.Наименование;
          //******************Адресс контрагента**********************
    Данные_по_оптовикам.Параметры.Адресс=УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(ДокПодчРеал.Контрагент,"Юридический");
    //******************Адресс контрагента**********************
    Данные_по_оптовикам.Параметры.Рез_нерез=ДокПодчРеал.Контрагент.СтранаРезидентства;
      //******************ПинКод товара***************************
    Данные_по_оптовикам.Параметры.Пинкод_нефтепрод=СтрТабЧасти.Номенклатура.ПинКод;
      //******************Количество товара***********************
    Данные_по_оптовикам.Параметры.Количество=СтрТабЧасти.Количество;
      //******************Номер контракта*************************
    Данные_по_оптовикам.Параметры.ном_контракта=ДокПодчРеал.Контрагент.ОсновнойДоговорКонтрагента.НомерДоговора;
      //******************Дата контракта**************************
    Данные_по_оптовикам.Параметры.Дата_контракта=ДокПодчРеал.Контрагент.ОсновнойДоговорКонтрагента.ДатаДоговора;
      //******************Номер сопроводительного*****************
       Данные_по_оптовикам.Параметры.Номер_сопр=ДокПодчРеал.НомСоп;
      //******************Дата  сопроводительного*****************
       Данные_по_оптовикам.Параметры.Дата_сопр=ДокПодчРеал.Дата;      
      //******************Номер бланка****************************
       Данные_по_оптовикам.Параметры.Ном_бланка=ДокПодчРеал.НБ;    
    //*****************Дата счет фактуры************************
   
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| СчетФактураВыданный.Ссылка
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
| СчетФактураВыданный.ДокументОснование = &ДокументОснование "
;

Запрос.УстановитьПараметр("ДокументОснование", ДокПодчРеал);  

//РезультатЗапроса = Запрос.Выполнить();

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
//Если РезультатЗапроса.Следующий() Тогда
 СФ = Выборка.Ссылка.ПолучитьОбъект();
 СФ.ДокументОснование = "";
    Данные_по_оптовикам.Параметры.Дата_счета_фак=СФ.Дата;  
 //СФ.Записать(РежимЗаписиДокумента.Запись);
КонецЦикла;
//КонецЕсли;    
//    Данные_по_оптовикам.Параметры.Дата_счета_фак=СФ.Дата;    
    //**********************************************************
    ТабДок.Вывести(Данные_по_оптовикам);  
       КонецЦикла;
     
     КонецЕсли ;  

    КонецЕсли;  
 

КонецЦикла;  
ТабДок.Показать();

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

Процедура ВыбПериодНажатие(Элемент)
 НастройкаПериода = Новый НастройкаПериода;
 НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода)));
 НастройкаПериода.РедактироватьКакИнтервал = Истина;
 НастройкаПериода.РедактироватьКакПериод = Истина;
 НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
 Если НастройкаПериода.Редактировать() Тогда
  НачПериода = НастройкаПериода.ПолучитьДатуНачала();
  КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
 КонецЕсли;
КонецПроцедуры
 
« Последнее редактирование: 10-09-2012 10:15 от Джон » Записан
Pshelti
Интересующийся

ru
Offline Offline

« Ответ #9 : 10-09-2012 10:07 » 

А вот еще момент... Основанием для Счета-фактуры может быть не только РТиУ. Может быть и приходный кассовый ордер.

Я предлагаю запустить отладку.
Через "консоль запроса" попробуй этот запрос посмотреть, что там выбирается без отбора. А уж потом вставляй "ГДЕ".
Записан
1СНИК
Интересующийся

kz
Offline Offline

« Ответ #10 : 10-09-2012 10:13 » 

А вот еще момент... Основанием для Счета-фактуры может быть не только РТиУ. Может быть и приходный кассовый ордер.

Я предлагаю запустить отладку.
Через "консоль запроса" попробуй этот запрос посмотреть, что там выбирается без отбора. А уж потом вставляй "ГДЕ".

Нет. То что основным документом является Реализация товаров  мы с бухгалтером проверили..
Записан
Pshelti
Интересующийся

ru
Offline Offline

« Ответ #11 : 10-09-2012 10:18 » 

Нет. То что основным документом является Реализация товаров  мы с бухгалтером проверили..

Дело в том, что вы, наверное, с бухгалтером смотрите конкретный счет-фактуру и его основание. Но ведь запрос перебирает их все и сравнивает с ДокПодчРеал. И может потому ругаться на несоответсвие типов.. Через консоль запроса предлагаю посмотреть всё же выборку
Записан
1СНИК
Интересующийся

kz
Offline Offline

« Ответ #12 : 15-09-2012 03:36 » 

Нет. То что основным документом является Реализация товаров  мы с бухгалтером проверили..

Дело в том, что вы, наверное, с бухгалтером смотрите конкретный счет-фактуру и его основание. Но ведь запрос перебирает их все и сравнивает с ДокПодчРеал. И может потому ругаться на несоответсвие типов.. Через консоль запроса предлагаю посмотреть всё же выборку
Можно по подробнее. Что такое консоль запроса ? Не могу найти.
Записан
Pshelti
Интересующийся

ru
Offline Offline

« Ответ #13 : 15-09-2012 17:39 » 

Нет. То что основным документом является Реализация товаров  мы с бухгалтером проверили..

Дело в том, что вы, наверное, с бухгалтером смотрите конкретный счет-фактуру и его основание. Но ведь запрос перебирает их все и сравнивает с ДокПодчРеал. И может потому ругаться на несоответсвие типов.. Через консоль запроса предлагаю посмотреть всё же выборку
Можно по подробнее. Что такое консоль запроса ? Не могу найти.
На диске ИТС есть внешняя обработка. Очень удобная штука. Пишешь там запрос, а он тебе там выполняет его и показывает результат. Можно поискать в Инете.
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 20-09-2012 11:26 » 

Пробуй:
Запрос.УстановитьПараметр("ДокументОснование", ДокПодчРеал.Ссылка);
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines