Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 авг 2021, 20:50

Тип не определен (Запрос)

Автор vadim10121995, 17 янв 2021, 18:22

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

vadim10121995

Здравствуйте, подскажите как в Т.Ч. поля Остаток автоматически занести данные из регистра товары на складах? Выполнил запрос выходит следующая ошибка

LexaK

два варианта
1.передаелйте запуск приложения на Толстый клиент
или
2.компиляцию &НаКлиенте замените &НаСервере

и как небольшой совет читайте СП (синтаксис помощник)
Цитировать
Запрос (Query)
Свойства:
МенеджерВременныхТаблиц (TempTablesManager)
Параметры (Parameters)
Текст (Text)
ТребуемаяАктуальностьДанных (RequiredDataRelevance)
ТребуемоеВремяАктуальностиДанных (RequiredDataRelevanceTime)
Методы:
Выполнить (Execute)
ВыполнитьПакет (ExecuteBatch)
ВыполнитьПакетСПромежуточнымиДанными (ExecuteBatchWithIntermediateData)
НайтиПараметры (FindParameters)
УстановитьПараметр (SetParameter)
Конструкторы:
На основании текста запроса
Описание:
Предназначен для выполнения запросов к базе данных.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

у каждого объекта/процедуры/функции есть описание доступности

Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.


если в доступности Тонкий клиент нет, то в области на &НаКлиенте работать не будет
ответ Понравился? (в смысле пригодился?)

antoneus

И опять - процедура для изменения значения в поле Остаток привязана к событию изменения этого же поля. Не будет никто в это поле лезть и его изменять, вызывайте серверную процедуру из процедуры ТоварыТоварПриИзменении.

vadim10121995

Цитата: antoneus от 17 янв 2021, 18:43
И опять - процедура для изменения значения в поле Остаток привязана к событию изменения этого же поля. Не будет никто в это поле лезть и его изменять, вызывайте серверную процедуру из процедуры ТоварыТоварПриИзменении.

Как мне сюда внести т.ч. остатков что бы они заполнялись из регистра накопления
&НаКлиенте
Процедура ТоварыТоварПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.ЕдиницаИзмерения = ПолучитьЗначениеРеквизита(СтрокаТабличнойЧасти.Товар, "ЕдиницаИзмерения")   
КонецПроцедуры
&НаСервере
Функция ПолучитьЗначениеРеквизита(Ссылка, ИмяРеквизита)
    Возврат Ссылка[ИмяРеквизита]
КонецФункции

LexaK

делайте пока по примеру

&НаКлиенте
Процедура ТоварыТоварПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.ЕдиницаИзмерения = ПолучитьЗначениеРеквизита(СтрокаТабличнойЧасти.Товар, "ЕдиницаИзмерения");   
СтрокаТабличнойЧасти.Количество = ПолучитьКоличество(СтрокаТабличнойЧасти.Товар);   
КонецПроцедуры
&НаСервере
Функция ПолучитьЗначениеРеквизита(Ссылка, ИмяРеквизита)
    Возврат Ссылка[ИмяРеквизита]
КонецФункции
&НаСервере
Функция ПолучитьКоличество(Ссылка)
    //Ваш запрос ...
    Возврат Результат.КоличествоОстаток;
КонецФункции
ответ Понравился? (в смысле пригодился?)

vadim10121995

Цитата: LexaK от 17 янв 2021, 19:00
делайте пока по примеру

&НаКлиенте
Процедура ТоварыТоварПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.ЕдиницаИзмерения = ПолучитьЗначениеРеквизита(СтрокаТабличнойЧасти.Товар, "ЕдиницаИзмерения");   
СтрокаТабличнойЧасти.Количество = ПолучитьКоличество(СтрокаТабличнойЧасти.Товар);   
КонецПроцедуры
&НаСервере
Функция ПолучитьЗначениеРеквизита(Ссылка, ИмяРеквизита)
    Возврат Ссылка[ИмяРеквизита]
КонецФункции
&НаСервере
Функция ПолучитьКоличество(Ссылка)
    //Ваш запрос ...
    Возврат Результат.КоличествоОстаток;
КонецФункции

Что то всё равно ошибка выходит

antoneus

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

LexaK

Цитировать
Возврат Результат.КоличествоОстаток;
это пример, надо подставить свои переменные
у вас есть
Выборка = Результат.Выбрать();

как из Выборки получить значение???
ответ Понравился? (в смысле пригодился?)

vadim10121995

Цитата: antoneus от 17 янв 2021, 20:54
&НаСервере
Функция ПолучитьКоличество(Ссылка)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Количество
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки(, Товар = &Товар) КАК ТоварыНаСкладахОстатки";
    Запрос.УстановитьПараметр("Товар", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        Возврат Выборка.Количество
    КонецЕсли;
    Возврат 0;
КонецФункции

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

LexaK

:lol:
ЦитироватьСпасибо код работает но автоматически заполняется поле количество а не остаток а нужно что бы заполнялся остаток. Как это сделать ?
Это серьезно?

если при такой команде
СтрокаТабличнойЧасти.Количество = ПолучитьКоличество(СтрокаТабличнойЧасти.Товар);   
остаток попадает в колонку "Количество",

тогда на что надо заменить колонку "Количество" что бы данные попадали в колонку "Остаток"?
ответ Понравился? (в смысле пригодился?)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск