Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> 1с8+Зовнішнє джерело даних SQL          
BEREST Подменю пользователя
сообщение 22.10.15, 8:31
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 21
Спасибо сказали: 0 раз
Рейтинг: 0

привіт.
допоможіть вирішити проблему
є 1с8 +інтернет магазин з товарами, в одному із полів таблиці на SQL заповнене значення коду товару 1С.

пишу запит на вибірку даних в 1с де параметром відбору є список значень з сайту
але мені видає помилку про несумісність полів
{Форма.Форма.Форма(15)}: Помилка при виклику методу контексту (Выполнить)
Результат = Запрос.Выполнить();
через:
{(6, 19)}: Неправильні параметри в операції порівняння. Не можна порівнювати поля
необмеженої довжини і поля несумісних типів.
Номенклатура.Код <<?>>= &СпКодов

я вже пробував в SQL поміняти довжину поля на 9 та тип на VARCHAR
але нічого не допомогло.


допоможіть розібратися

дякую

Vofka Подменю пользователя
сообщение 22.10.15, 8:50
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Номенклатура.Код В (&СпКодов)

BEREST Подменю пользователя
сообщение 22.10.15, 9:20
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 21
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Vofka @ 22.10.15, 8:50) *
Номенклатура.Код В (&СпКодов)


нова помилка

{Форма.Форма.Форма(15)}: Помилка при виклику методу контексту (Выполнить)
Результат = Запрос.Выполнить();
через:
{(6, 19)}: Неправильні параметри
Номенклатура.Код <<?>>В (&СпКодов)

Vofka Подменю пользователя
сообщение 22.10.15, 9:47
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Что такое СпКодов?

BEREST Подменю пользователя
сообщение 22.10.15, 10:01
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 21
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Vofka @ 22.10.15, 9:47) *
Что такое СпКодов?


зараз викладу весь код

Процедура КнопкаВыполнитьНажатие(СПКодов)
    Запрос = Новый Запрос;
    Запрос.текст = "ВЫБРАТЬ
       |    Номенклатура.Ссылка
       |ИЗ
       |    Справочник.Номенклатура КАК Номенклатура
       |ГДЕ
       |    Номенклатура.Код В (&СПКодов)";
      
       Запрос.УстановитьПараметр("СПКодов",СПКодов);
      
       Т = Новый ТаблицаЗначений;
       т.Колонки.Добавить("Код");
       т.Колонки.Добавить("Цена");
       Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
       Пока Выборка.Следующий() Цикл
                 Цена = Ценообразование.ПолучитьЦенуНоменклатуры(Выборка.ссылка, Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000002"),,,);
                
                НС = Т.Добавить();
                НС.Код = Выборка.ссылка.код;
                НС.Цена = Цена;
             КонецЦикла;
      
      
             Для Каждого  Стр Из Т   Цикл
                 сообщить(Цена);
                
                
                 //далі йтиме SQL інструкція для обновлення ціни на сайті)
                 //Стр.Код = сождеожит код
            //Стр.Цена = содержит цену
            
                
                
             КонецЦикла;
                
            
            
КонецПроцедуры


Connection = Новый COMОбъект("ADODB.Connection");
  
  //Необходимые параметры для подключения
  АдресСервера   = "*******";   //ip адрес сервера MySQL
  НомерПорта     = "****";     //порт подключения, обычно 3306
  ИмяБД       = "*****";     //имя подключаемой базы данных
  Пользователь   = "*****";     //имя пользователя БД с соответствующими правами
  Пароль       = "******";       //пароль пользователя БД
  
  //Подключаемся
  Попытка      
    Connection.Open("Driver={MySQL ODBC 5.1 Driver};Server=" + СокрЛП(АдресСервера) + ";Port=" + НомерПорта + ";Database=" + СокрЛП(ИмяБД) + ";User=" + СокрЛП(Пользователь) + ";Password=" + Пароль + ";Option=3");
  Исключение
    Сообщить("Ошибка подключения - " + ОписаниеОшибки());  
    //Возврат;
  КонецПопытки;
  
  
  //Пропишем текст запроса к БД сайта
  //Выборка товара
  //ТекстЗапросаMYSQL = "SELECT upc, price FROM product";
  ТекстЗапросаMYSQL = "SELECT upc, price FROM product";
  RecordSet = Новый COMОбъект("ADODB.RecordSet");
  RecordSet.ActiveConnection = Connection;
  
  RecordSet.Open(ТекстЗапросаMYSQL);
  
  

СпКодов = Новый СписокЗначений;

Пока RecordSet.EOF() = 0 Цикл
    КодТовараВеб = RecordSet.Fields("upc").Value;  
    ЦенаВеб = RecordSet.Fields("price").Value;
//Цикл от сайта
КодТовараВеб = RecordSet.Fields("upc").Value;  
    ЦенаВеб = RecordSet.Fields("price").Value;

СпКодов.Добавить(КодТовараВеб);
сообщить(КодтовараВеб);
RecordSet.MoveNext();
КонецЦикла;


дані з сайту витягує а далі коли запускаю процедуру помилка
{Форма.Форма.Форма(15)}: Помилка при виклику методу контексту (Выполнить)
Результат = Запрос.Выполнить();
через:
{(6, 19)}: Неправильні параметри
Номенклатура.Код <<?>>В (&СПКодов)

Сообщение отредактировал Vofka - 22.10.15, 10:12

Vofka Подменю пользователя
сообщение 22.10.15, 10:13
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Внесите код, который у вас вне процедуры - внутрь процедуры.
И выделяйте код!

BEREST Подменю пользователя
сообщение 22.10.15, 10:19
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 21
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Vofka @ 22.10.15, 10:13) *
Внесите код, который у вас вне процедуры - внутрь процедуры.
И выделяйте код!


що означає Виділяти код?

переніс код в початок процедури, помилки немає, але виходить що ціну витягує всю з 0
виходить що
Цена = Ценообразование.ПолучитьЦенуНоменклатуры(Выборка.ссылка, Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000002"),,,);
неправильна

Petre Подменю пользователя
сообщение 22.10.15, 12:19
Сообщение #8

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2920
Из: Київ, Україна
Спасибо сказали: 1238 раз
Рейтинг: 1344.3

Запустіть налагодження та подивіться, що є "СПКодов" (тип та значення).


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

BEREST Подменю пользователя
сообщение 22.10.15, 12:29
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 21
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Petre @ 22.10.15, 12:19) *
Запустіть налагодження та подивіться, що є "СПКодов" (тип та значення).


підкажіть як це зробити?

candrey Подменю пользователя
сообщение 22.10.15, 18:40
Сообщение #10

Завсегдатай
****
Группа: Пользователи
Сообщений: 155
Спасибо сказали: 6 раз
Рейтинг: 0

Вроде и код не простой. А про элементарные вещи спрашиваете.
))
Ставьте точку останова в вашем коде Кнопка "F9". И то что выше точки останова смотрите в том числе и "СПКодов" .
Т.е так можите все "Строки кода" посмотреть его тип и значение.

Или через Консоль отчетов(Обработка такая есть) пробуйте для просмотра что получаем на выходе.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.06.25, 0:20
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!