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

НЕ могу понять HELP

Автор Artem48, 22 сен 2014, 15:39

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

Artem48

Не могу решить В Методичке (Практикум) вообще не понимаю .

Допустим пользователь начинает выписывать Приходный кассовый ордер для конкретного контрагента. Апрограмма сразу подсказывает:  сколько этот контрагент нам должен . Поэтому: При выборе контрагента в документе ""ПКО"" нужно создать процедуру, которая проверит задолжность данной организации перед нами. и в случае, если та- положительная , пропишет эту задолженость в поле "СУММА"

Yura063

Так что вам надо? Что бы за вас все решили? так это вам в раздел фриланс!
Помогли, отблагодари!

Artem48

чтобы обяснили как сделать.
Добавлено: 22 сен 2014, 16:14


Цитата: Artem48 от 22 сен 2014, 15:39
Не могу решить В Методичке (Практикум) вообще не понимаю .

Допустим пользователь начинает выписывать Приходный кассовый ордер для конкретного контрагента. Апрограмма сразу подсказывает:  сколько этот контрагент нам должен . Поэтому: При выборе контрагента в документе ""ПКО"" нужно создать процедуру, которая проверит задолжность данной организации перед нами. и в случае, если та- положительная , пропишет эту задолженость в поле "СУММА"


в форме документа ПКО захожу в модуль и прописываю

&НаКлиенте
Процедура КонтрАгентПриИзменении(Элемент)
   Объект.Сумма = ПолучитьСуммуДолга(Объект.Контрагент)
КонецПроцедуры


&Насервере

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


что не так?

Yura063

Добавьте в запрос условия, что сумма больше 0. Тогда вы будете получать только задолженности. Уберите передачу контрагента в функцию.
Помогли, отблагодари!

cska-fanat-kz

Цитата: Artem48 от 22 сен 2014, 16:06из РегистрНакопления.Задолженности.СуммаОстаток

это что за таблица такая?
должна быть виртуальная таблица остатков...
хоть конструктором запросов научитесь пользоваться...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Artem48

Цитата: cska-fanat-kz от 23 сен 2014, 07:37
Цитата: Artem48 от 22 сен 2014, 16:06из РегистрНакопления.Задолженности.СуммаОстаток

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

так помоги . что за таблица виртуальная?

cska-fanat-kz

В очередной раз рискну привести код из "образной" базы.
Так сказать все имена и фамилии изменены...

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

   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   Если ВыборкаДетальныеЗаписи.Следующий() Тогда
       Возврат ВыборкаДетальныеЗаписи.СуммаОстаток;
   Иначе   
       Возврат 0;
   КонецЕсли;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Artem48

Цитата: cska-fanat-kz от 23 сен 2014, 07:49
В очередной раз рискну привести код из "образной" базы.
Так сказать все имена и фамилии изменены...

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

   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   Если ВыборкаДетальныеЗаписи.Следующий() Тогда
       Возврат ВыборкаДетальныеЗаписи.СуммаОстаток;
   Иначе   
       Возврат 0;
   КонецЕсли;



я правильно понял в модуле объекта это прописывается?

cska-fanat-kz

Это прописывается внутри вашей функции ПолучитьСуммуДолга()

и директива перед ней должна быть &НаСервереБезКонтекста
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Artem48

Цитата: Artem48 от 23 сен 2014, 07:54
Цитата: cska-fanat-kz от 23 сен 2014, 07:49
В очередной раз рискну привести код из "образной" базы.
Так сказать все имена и фамилии изменены...

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

   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   Если ВыборкаДетальныеЗаписи.Следующий() Тогда
       Возврат ВыборкаДетальныеЗаписи.СуммаОстаток;
   Иначе   
       Возврат 0;
   КонецЕсли;



я правильно понял в модуле объекта это прописывается?



а вообще я это в конструкторе запросов должен был создать?

Теги:

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

Рейтинг@Mail.ru

Поиск