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

Ребят помогите!!!!

Автор SpiritDark, 08 ноя 2011, 14:19

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

SpiritDark

 :dfbbdrfb:Вопрос первый: Создал регистр накопления по долгам контрагентов. Как в Документе "Расходная" сделать так что бы при выборе Контрагента в реквизит "Долг контрагента" записывалась Ресурс "СуммаДолга" из регистра накопления. В Табличный документ записывается а в реквизит пустое значение передается.
:dfbbdrfb:Второй вопрос: Есть числовой учет прихода товара в упаковке. Но бывает что приход 12 упаковок и + 4 шт. Как дробное число разбить на части. Пример: пришло 12.4 упаковки. Сделать так что итог был 12 уп. + 4шт.

Заранее огромное спасибо за помощь)))

SpiritDark


Spiriton


Dethmontt

1. ДолгКонтрагента = СуммаДолга;
2. Вести учет отдельно упаковки от штук (2ресурса)
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

mohock

Уточняю:
1. Реквизит ДолгКонтрагента должен быть реквизитом формы документа, а не реквизитом объекта документ. И, соответственно вычисляться при открытии сохраненного документа и при изменении в поле Контрагент. :) Т.е. эту сумму глупо хранить в документе.
2. Ввести две единицы измерения для товара и забивать его двумя строками - одну в уп. другую в шт. (см. типовые конф.)

SpiritDark

Вот код! Правильно я получаю СуммуДолга из Регистра Накопления??? А то при изменение контрагента ничего не происходит(((


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


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

has


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

Можно было вместе с контрагентом передать еще дату документа и выполнять НаСервереБезКонтекста, чтобы форму на сервер не передавать

SpiritDark

Цитата: has от 09 ноя 2011, 07:19

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

Можно было вместе с контрагентом передать еще дату документа и выполнять НаСервереБезКонтекста, чтобы форму на сервер не передавать

СПАСИБО!!! Работает

Теги:

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

Рейтинг@Mail.ru

Поиск