Форум программистов, компьютерный форум, киберфорум
1С: Администрирование и интеграция
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 15.06.2018
Сообщений: 89
1

Как привязать поле ввода к запросу в этой процедуре?

17.07.2018, 13:57. Показов 636. Ответов 14
Метки нет (Все метки)

есть готовая внешняя обработка между базой данной SQL программы Сервера Терминалов( это база SQL) и 1С 10.3 УТ


в этой 1С обработке во вкладке Загрузка - по по нажатию кнопки Запустить: в 1С 10.3 УТ загружаются все транзакции со всех весов с дальнейшим формированием документов в 1С (перемещение, поступление товаров, отпуск товаров, реализация товаров, инвентаризация)


А как изменить модуль этой кнопки таким образом, чтобы получать транзакции только с тех весов, Id которых я напишу в поле ввода. В форме обработки Поле Ввода числовое я создал, но пока не определился с событием этого поля. Создал Кнопку КнПолучитьТранзакции и пока у этой кнопки модуль тот же, что у кнопки для получения всех транзакций со всех подряд весов.

Как привязать поле ввода к запросу в этой процедуре?

Вот процедура начинается так:

1C
1
2
3
4
5
6
Процедура ЗагрузкаТранзакций() 
//Обратимся к базе 
 
ТекстЗапросаОператоры="sel ect id, name fr om tb_operator where (mark_deleted=0 and id>0)"; 
ТекстЗапроса="select * fr om tb_transaction wh ere (mark_deleted=0 and id>0 and id_sync='')"; 
Попытка
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2018, 13:57
Ответы с готовыми решениями:

Как на форме привязать поле со списком к запросу?
Добрый день! Подскажите, как на форме привязать поле со списком к запросу. Что то не могу осилить...

При выборе значения из списка, в этой же таблице в другом поле установить значение по запросу
Здравствуйте! У меня есть таблица в которой есть поле с выпадающем списком, необходимо при выборе...

Lazarus не видит поле для ввода в моей процедуре
Помогите пожалуйста при компиляции Lazarus не видит поле для ввода в моей процедуре то есть в: ...

Как программно изменить цвет текста в поле ввода и как выделить весь текст в поле ввода по умолчанию
Как программно изменить цвет текста в поле ввода и как выделить весь текст в поле ввода по...

__________________

Записывайтесь на профессиональные курсы 1C-разработчиков
14
Тест
Эксперт 1С
381 / 162 / 56
Регистрация: 26.02.2010
Сообщений: 1,239
17.07.2018, 14:06 2
Возможно так
ТекстЗапроса="select * fr om tb_transaction wh ere (mark_deleted=0 and id="+ЭлементыФормы.имяВашегоРеквизита.Значение+" and id_sync='')";
0
0 / 0 / 0
Регистрация: 15.06.2018
Сообщений: 89
17.07.2018, 14:24  [ТС] 3
Произошла непредвиденная ошибка выполнения! {ВнешняяОбработка.МассаК.Форма.Форма.Форма(6959)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Incorrect syntax near '*'.

запрос скорее всего верен....где то что-то в обработке привязать и подкорректировать надо видимо
0
Тест
Эксперт 1С
381 / 162 / 56
Регистрация: 26.02.2010
Сообщений: 1,239
17.07.2018, 14:26 4
1. посмотрите что в тексте запроса и выполните его в sql. там может сказать правильную ошибку
2. возможно ковычек не хватает

Добавлено через 33 секунды
почему fr om и wh ere раздельно то ?
0
0 / 0 / 0
Регистрация: 15.06.2018
Сообщений: 89
17.07.2018, 14:35  [ТС] 5
так скопировалось некорректно


в SQL запрос выполняется верно

select * from tb_transaction where (mark_deleted=0 and Device_id='9652' and id_sync='')


в 1С та же ошибка
0
Тест
Эксперт 1С
381 / 162 / 56
Регистрация: 26.02.2010
Сообщений: 1,239
17.07.2018, 14:41 6
Цитата Сообщение от Brotherm Посмотреть сообщение
select * from tb_transaction where (mark_deleted=0 and Device_id='9652' and id_sync='')
в sql выполняли именно этот запрос?

Добавлено через 15 секунд
ой стоп не правильно прочитал

Добавлено через 54 секунды
как минимум то что выполнилось бы по моему запросу отличается от того что написали вы отсутствием кавычек, в моем примере их нет.
0
0 / 0 / 0
Регистрация: 15.06.2018
Сообщений: 89
18.07.2018, 09:46  [ТС] 7
запрос изменил:

1C
1
ТекстЗапроса="select * from tb_transaction where (mark_deleted=0 and Device_Id="+ЭлементыФормы.idves.Значение+" and id_sync='' and id>0)"
где idves - имя поля ввода

в отладке:

Произошла непредвиденная ошибка выполнения! {ВнешняяОбработка.МассаК.Форма.Форма.Форма(6961)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Incorrect syntax near '*'.
0
Тест
Эксперт 1С
381 / 162 / 56
Регистрация: 26.02.2010
Сообщений: 1,239
18.07.2018, 10:02 8
Brotherm, вот поставьте точку остановки в месте где формируется текст запроса, скопируйте из него текс, скиньте сюда и попробуйте его же засунуть в sql запросник и выпонлить
0
0 / 0 / 0
Регистрация: 15.06.2018
Сообщений: 89
18.07.2018, 11:07  [ТС] 9
прикрепил БД SQL и обработку, где вносил изменения.

https://cloud.mail.ru/public/KC6d/upVeoMJpN - ссылка базы 1С
0
Вложения
Тип файла: rar БД и обработка.rar (1.84 Мб, 7 просмотров)
0 / 0 / 0
Регистрация: 15.06.2018
Сообщений: 89
18.07.2018, 11:16  [ТС] 10
значения в поле ввода надо для проверки ставить: 10413, и 9652
0
Тест
Эксперт 1С
381 / 162 / 56
Регистрация: 26.02.2010
Сообщений: 1,239
18.07.2018, 11:25 11
ну как вариант так попробуйте

1C
1
ТекстЗапроса="select * from tb_transaction where (mark_deleted=0 and Device_Id='"+ЭлементыФормы.idves.Значение+"' and id_sync='' and id>0)"
0
0 / 0 / 0
Регистрация: 15.06.2018
Сообщений: 89
18.07.2018, 12:15  [ТС] 12
во вкладке Загрузка получить транзакции со следующих устройств - в этом поле ставить значения 10413 или 9652
Нажать кнопку Запустить.


Выходит ошибка "В данный момент транзакции заняты другим приложением. Попробуйте повторить попытку позже"

Ошибок по коду нет уже

Добавлено через 1 минуту
в данный момент такой запрос и стоит.

Добавлено через 15 секунд
в данный момент такой запрос и стоит.

Добавлено через 13 минут
ошибки те же

Выходит ошибка "В данный момент транзакции заняты другим приложением. Попробуйте повторить попытку позже"

даже если не ставить 10413 или 9652

Добавлено через 3 минуты
Предложили так делать, другой человек

На форме создаем поле id весов.
и немного меняем запрос. Никакие дополнительные кнопки в обработке создавать не нужно.

должно получиться примерно так:

where idvesov = " + ПолеФормыIDвесов + " продолжение запроса ";

но здесь что то не так. пробовал. может некорректно собрал я сам запрос целиком

Добавлено через 28 минут
1C
1
2
3
4
5
6
7
8
9
10
11
12
МожноВыгружать=Истина;
    Если НЕ ПроверкаНаЗагрузку("Транзакции") Тогда
        МожноВыгружать=Ложь;
    КонецЕсли; 
    
    Если НЕ МожноВыгружать Тогда
        Соединение.Close();
        Соединение="";
  
        Предупреждение("В данный момент транзакции заняты другим приложением! Попробуйте повторить попытку позже.");
        Возврат;
    КонецЕсли;
0
Модератор
Эксперт 1С
3055 / 2749 / 515
Регистрация: 10.03.2011
Сообщений: 10,550
Записей в блоге: 1
18.07.2018, 22:12 13
Brotherm,
Если ЭлементыФормы.idves.Значение - имеет числовой тип

то для числе больше 999 в 1С нужно использовать формат для передачи в текст запроса (особенности сраной 1С-ки)

1C
1
ТекстЗапроса="select * from tb_transaction where (mark_deleted=0 and Device_Id="+Формат(ЭлементыФормы.idves.Значение,"ЧГ=")+" and id_sync='' and id>0)"
1
0 / 0 / 0
Регистрация: 15.06.2018
Сообщений: 89
19.07.2018, 10:37  [ТС] 14
заработало с таким запросом! спасибо всем...с меня пиво

ТекстЗапроса="select * from tb_transaction where (mark_deleted=0 and Device_Id="+Формат(ЭлементыФормы.idves.Значение,"ЧГ=")+" and id_sync='' and id>0)"

надо все проверить теперь тщательно
0
Модератор
Эксперт 1С
3055 / 2749 / 515
Регистрация: 10.03.2011
Сообщений: 10,550
Записей в блоге: 1
19.07.2018, 19:59 15
а сколько переписки из за маленького пробела)))
1 000
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2018, 19:59

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

HTML!? Есть поле ввода Type text, после ввода текста и нажатия entrer теряется фокус, как его оставить в этом же поле?
HTML!? Есть поле ввода Type text, после ввода текста и нажатия entrer теряется фокус, как его...

Вывести несколько записей, соответствующих запросу в процедуре
Как вывести несколько записей соответствующих запросу в процедуре? Пробовал так, но выводит пустые...

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

Как сделать запрет ввода букв в поле для ввода input
Здравствуйте! Есть стандартное поле ввода <input type='text' name='name1' size='30'...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.