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

Нужен помощь чайнеку :(

Автор Шурик_1985, 20 мая 2011, 11:33

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

Шурик_1985

Доброго времени суток!
Не обходимо решить след задание:
Позаботимся о следующем сервисе для пользователя:
Допустим, он начинает выписывать ПКО для конкретного контрагента. А программа сразу подсказывает: сколько этот контрагент нам должен. Поэтому:
При выборе контрагента в документе ПКО создать процедуру, которая проверит задолженность данной организации перед нами, и в случае, если та положительная, пропишет эту задолженность в поле «Сумма».


Я создал в Документе ПКО Надпись "Долг" реквизит ДолгКон, ТипСтрока и конечнно же в Данных выбрал ДолгКон.
в модуле документа прописал :
Процедура ТоварыПриАктивизацииСтроки(Элемент)
   ОПКОЗадолжности = РегистрыНакопления.Задолжности;
          ТекТовар = Контрагент;
           ФильтрТов = Новый Структура();
          ФильтрТов.Вставить("Контрагент", ТекТовар);
         
          ТабОст = ОПКОЗадолжности.Остатки(Дата,ФильтрТов,"Контрагент", " ДолгСумма");
         
          ДолгКон = ? (ТабОст.Итого("ДоглСумма")=0,
          "Тек.ДолгКА: " + ТабОст.Итого("ДолгСумма"),
          ?(ТабОст.Итог("ДолгСумма")=0, "Долгов взаиморасчетов нет;",
          "Тек.ДоглМы: "+ТабОст.Итог("ДолгСумма")));
                       
КонецПроцедуры

когда запускаю ПКО суммаДогла нет. нифига ничего непоказывает! что я нитак делаю помогите:? :dfbbdrfb:

cska-fanat-kz

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

Шурик_1985

Цитата: cska-fanat-kz от 20 мая 2011, 11:48
А где вы вызываете эту процедуру?
По какому событию это происходит - нажатие кнопки или где?
И почему она называется "ТоварыПриАктивизацииСтроки"? Содрали где-то? ;)

так точно, я недавно делал такую же процедуру вот оттуда содрал:))
но пробовал Процедура ДолгНажатие(Элемент)
тоже не помогло.Процедура должно вызываться привыборе контрагента

cska-fanat-kz

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

Шурик_1985

Цитата: cska-fanat-kz от 20 мая 2011, 12:00
Создайте процедуру-обработчик события КонтрагентПриИзменении
и в ней и вызывайте вашу процедуру.
Только если она у вас в модуле документа, не забудьте добавить в заголовке процедуры ключевое слово ЭКСПОРТ...
не помогло

cska-fanat-kz

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

Шурик_1985

Цитата: cska-fanat-kz от 20 мая 2011, 13:07
Если хотите, чтобы помогло - подробнее пишите что именно не помогло!

в документе ПКО есть реквизит Контрагент и Сумма
При выборе контрагента в документе ПКО создать процедуру, которая проверит задолженность данной организации перед нами, и в случае, если та положительная, пропишет эту задолженность в поле «Сумма».В случае, если та отрицательная (то есть, мы должны), пропишет эту задолженность в поле «Сумма».
вот такую задачку надо сделать

Шурик_1985

в регистр накоплении есть ЗАдолжности которое имеет Измерения: Контрагент и Ресурсы: СуммаДолга

Шурыгин Иван Сергеевич

Цитата: Шурик_1985 от 23 мая 2011, 07:13
Цитата: cska-fanat-kz от 20 мая 2011, 13:07
Если хотите, чтобы помогло - подробнее пишите что именно не помогло!

в документе ПКО есть реквизит Контрагент и Сумма
При выборе контрагента в документе ПКО создать процедуру, которая проверит задолженность данной организации перед нами, и в случае, если та положительная, пропишет эту задолженность в поле «Сумма».В случае, если та отрицательная (то есть, мы должны), пропишет эту задолженность в поле «Сумма».
вот такую задачку надо сделать


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

ТекстЗапроса = "Выбрать
Остаток
Из РегистрНакопления.Задолжности.Остатки(&НаДату,)
Где Контрагент = &Контрагент
";

Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("НаДату",ТекущаяДата());
Запрос.УстановитьПараметр("Контрагент",Контрагент);

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

Если Выборка.Следующий() Тогда

Остаток = Выборка.Остаток;

КонецЕсли;

Далее работа с остатком по вашим условиям. только надо помнить одно!!! в РЕГИСТРЕ НАКОПЛЕНИЯ должно быть ЛИШЬ ОДНО ИЗМЕРЕНИЕ Контрагент в таком случае. если измерений больше, то необходимо будет либо указывать измерения, либо собирать общий итог по запросу.
===================================
жизнь надо прожить так, чтоб вверху посмотрели.
и сказали "А ну ка повтори"
===================================

cska-fanat-kz

"в документе ПКО есть реквизит Контрагент и Сумма
При выборе контрагента в документе ПКО создать процедуру, которая проверит задолженность данной организации перед нами, и в случае, если та положительная, пропишет эту задолженность в поле «Сумма».В случае, если та отрицательная (то есть, мы должны), пропишет эту задолженность в поле «Сумма».
вот такую задачку надо сделать"

Условие задачи я помню!
И дал примерное решение.
Написали "не помогло".
Пишу "что не помогло?"
В ответ - опять условие задачи...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

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

Рейтинг@Mail.ru

Поиск