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

Расход\Приход 8.0

Автор warshadow, 24 фев 2011, 19:42

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

progmikon

Коллеги, приветствую.

Давайте придерживаться правила - для каждого вопроса, выходящего за рамки текущего - отдельная тема. Форум сделан не только для того, чтобы решать текущие проблемы конкретного пользователя, но и для того, чтобы другие пользователи с аналогичными проблемами могли по поиску найти что-то. Но согласитесь, что читать тему на 9 страниц не очень прикольно.

Модераторы, следим за порядком )))

Klyacksa

Прошу прощения, дорогая администрация, буду более внимательна.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

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

warshadow

Да, еще вопрос по поводу запроса  ввода в ТЧ 2 поля,но с разными контрагентами, одинаковой книгой -- потому что здесь и идет не правильная проводка.
Например, на складе всего 10 книг КАК Книга и 2 разных контрагента, вот иллюстрация:
                         Дата         НаимненованиеКниги  Кол-во   
Контрагент-1     01.01.2001   Книга                          10
Контрагент-2     01.01.2001   Книга                          10
Итог: Документ - проведен.и списано 20 книг, хотя на складе имелось 10..

cska-fanat-kz

Вы же из ТЧ берете только номенклатуру и количество.
Если группировать по номенклатуре и суммировать количество,
то на выходе получите ОДНУ строку по каждой номенклатуре из ТЧ.
Вне зависимости от контрагента или чего нибудь еще...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

warshadow

У меня есть группировка по количеству и связь по номенклатуре, но все равно если контрагент-1 и контрагент-2 на второй строке, то документ проводиться.
Или  я что-то не понимаю?

cska-fanat-kz

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

warshadow

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

Klyacksa

Если хотите еще и учитывать в ругистрах по разным Контрагентам, то можно поиграться с запросом - настроить группировки так, чтобы в итоговые записи возвращалось дерево вида:
Книга               Контрагент         Кол-во заказано      Кол-во остаток
Война и мир                               12                               10
                      Контрагент1         7                               10
                      Контрагент2         5                               10

То есть сделать группировку по книге, потом выбирать результат запроса

ВыборкаКнига=Запрос.Выполнить().Выбрать(ОБходРезультатаЗапроса.ПоГруппировкам);
НеХватаетТовара=Ложь;
Пока ВыборкаКнига.Следующий() цикл
    Если ВыборкаКнига.КолвоЗаказано>КолвоСтрок тогда
          Сообщить("Не хватает"+Строка(ВыборкаКнига.КолвоЗаказано-ВыборкаКнига.КолвоСтрок)+" шт. книги "+ВыборкаКнига.Наименование);
          НеХватаетТовара=Истина;
    КонецЕсли;
КонецЦикла;

Если НеХватаетТовара тогда
     Сообщить("Документ проведен не будет!");
     Возврат;
КонецЕсли;

ВыборкаКнига.Сбросить();
Пока ВыборкаКнига.Следующий() цикл
     ВыборкаДетали=ВыборкаКнига.Выбрать();
     Пока ВыборкаДетали.Следующий() цикл
          <<тут создаем движения по ВыборкаДетали>>
     КонецЦикла;
КонецЦикла;

<<записываем созданные движения>>

xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

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

cska-fanat-kz

Регистр накопления (точнее виртуальная таблица остатков РН) соединяется с ВЛОЖЕННЫМ ЗАПРОСОМ!

Вложенный запрос строится по ТЧ документа.
Поля: Номенклатура и количество.
Группировка по номенклатуре
Суммирование по количеству

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

Klyacksa

Если в таб.частях документов есть Контрагент, то вполне логично записывать данные в регистр и в разрезе Контрагента тоже.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

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

Теги:
Рейтинг@Mail.ru

Поиск