Перейти к содержимому


Услуги программиста 1С
Профессиональные программисты 1С.
Весь комплекс услуг сопровождения 1С.

Курсы 1С
Бухгалтерам, менеджерам
и программистам.
Бесплатно!
Живое индивидуальное обучение по 1С.

Остатки в Расходной накладной


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1   vadim007

vadim007

      Подполковник

    • Пользователи
    • PipPipPipPipPip
    • Сообщений: 146
    • Регистрация: 14-October 09
    • Откуда:Донецк, Украина

Отправлено 20 September 2010 - 06:52

Конфигурация ПУБ.
В расходной накладной остатки показываются на текущую дату. Или, если быть более точным - остатки вообще. Так сказать - последние. А нужно выводить остатки на дату документа. Посмотрел на код, выводящий остатки. Это глКонтрольОстатка(Конт, ТМЦ, МестоХранения = "", УчитыватьРезерв=1). В этой функции идет вызов Остаток=Регистр.Остатки.СводныйОстаток(Фирма,ТМЦ,МестоХранения,"ОстатокТовара"). Т.е. остатки берутся из регистра Остатки. Как взять эти остатки на заданную дату?
  • 0

#2   pak

pak

      Генерал-майор

    • Модераторы
    • Сообщений: 340
    • Регистрация: 02-February 09
    • Откуда:Солнечный Крым

Отправлено 20 September 2010 - 08:12

РассчитатьРегистрыНа(<?>,);
Синтаксис:
РассчитатьРегистрыНа(<ГраницаРасчета>,<ГрафаОтбора>)
Назначение:
Рассчитать все регистры с установленным флагом временного расчета на начало события.
Параметры:
<ГраницаРасчета> - значение типа дата, документ или позиция.
<ГрафаОтбора> - необязательный. Строковое выражение. Установка использования графы отбора. Если не указан, то автоматический выбор графы отбора. Идентификатор графы отбора - использование определенной графы отбора.
''*'' - автоматический выбор графы отбора. Пустая строка - не использовать графу отбора.
  • 0

#3   Polukuzov

Polukuzov

      Генерал-майор

    • Пользователи
    • PipPipPipPipPipPipPip
    • Сообщений: 324
    • Регистрация: 23-April 08
    • Откуда: , ,

Отправлено 20 September 2010 - 10:46

Лучше не РассчитатьРегистрыНа() а РассчитатьРегистрыПо() а то в случае
когда документ уже проведен ваш товар будет виден на остатке.

Ну а правильнее

Code
Если ТекущийДокумент().Выбран()=0 Тогда
рег.РасчитатьРегистрыПо(ДатаДок);
Иначе
рег.РасчитатьРегистрыПо(Текущийдокумент());
КонецЕсли;

Так как документ еще не записан то и его позиция еще не определена и нужно использовать дату документа.
Вообще при большом асортименте номенклатуры такой расчет будет занимать некоторое время, по-этому его нужно
делать один раз при создании документа и хранить где-то в ТаблицеЗначений и оттуда их выбирать.

Добавлено (20.09.2010, 11:46)
---------------------------------------------
Да кстати при подборе по партиям выводяться остатки на время документа.

  • 0

#4   Golub____Ka

Golub____Ka

      Лейтенант

    • Пользователи
    • PipPip
    • Сообщений: 72
    • Регистрация: 18-November 09
    • Откуда:Ужгород , Закарпатская Область , Украина

Отправлено 20 September 2010 - 12:41

дійсно
РассчитатьРегистрыНа()
займе багато часу.. залиште так як є.

якщо на даний момент нема товару на кінець місяцю , значить його нема..

  • 0

#5   vadim007

vadim007

      Подполковник

    • Пользователи
    • PipPipPipPipPip
    • Сообщений: 146
    • Регистрация: 14-October 09
    • Откуда:Донецк, Украина

Отправлено 20 September 2010 - 13:41

Quote (Polukuzov)
Да кстати при подборе по партиям выводяться остатки на время документа.

А где в ПУБ подбор по партиям?

Добавлено (20.09.2010, 14:41)
---------------------------------------------

Quote (Polukuzov)
Лучше не РассчитатьРегистрыНа() а РассчитатьРегистрыПо() а то в случае
когда документ уже проведен ваш товар будет виден на остатке.
Ну а правильнее
Code
Если ТекущийДокумент().Выбран()=0 Тогда
рег.РасчитатьРегистрыПо(ДатаДок);
Иначе
рег.РасчитатьРегистрыПо(Текущийдокумент());
КонецЕсли;

Так как документ еще не записан то и его позиция еще не определена и нужно использовать дату документа.
Вообще при большом асортименте номенклатуры такой расчет будет занимать некоторое время, по-этому его нужно
делать один раз при создании документа и хранить где-то в ТаблицеЗначений и оттуда их выбирать.

Этот ответ, imho, наиболее полный из всех. Но дальше хотел-бы уточнить: нужно-ли накладывать фильтр на регистр взаиморасчетов для ускорения расчетов остатков? Или, если функция глКонтрольОстатка(Конт, ТМЦ, МестоХранения = "", УчитыватьРезерв=1) внутри себя вызывает Остаток=Регистр.Остатки.СводныйОстаток(Фирма,ТМЦ,МестоХранения,"ОстатокТовара"), то фильтр как-бы до одного места?
И насчет хранения в таблице значений: что именно в ней хранить?

  • 0

#6   Polukuzov

Polukuzov

      Генерал-майор

    • Пользователи
    • PipPipPipPipPipPipPip
    • Сообщений: 324
    • Регистрация: 23-April 08
    • Откуда: , ,

Отправлено 21 September 2010 - 11:45

И насчет хранения в таблице значений: что именно в ней хранить?
Если использовать колонку в табличной части в которой функция будет возвращать остаток товара по
текущей строке, то при каждом обнофлении формы(курсор вниз, вверх, вправо влево) будет пересчитываться
остаток и не только по текущей строке а и по всем которые видны в табличной части. Так что остатки
расчитываються один раз на момент создания документа или при смене даты документа и храняться в
таблице значений. А функция остатков будет искать их в этой таблице.
  • 0

#7   vadim007

vadim007

      Подполковник

    • Пользователи
    • PipPipPipPipPip
    • Сообщений: 146
    • Регистрация: 14-October 09
    • Откуда:Донецк, Украина

Отправлено 21 September 2010 - 13:25

Quote (Polukuzov)
А функция остатков будет искать их в этой таблице.

С чего-бы это остатки будут все время пересчитываться? Они спокойно извлекаются из регистра Остатки. А вот чтобы остатки были актуальны, их и нужно будет расчитать вызовом рег.РасчитатьРегистрыПо(..). А также пересчитывать при смене даты документа, фирмы, контрагента, склада, и т.д.. Короче, тех реквизитов документа, которые фигурируют в Измерениях регистра. Т.е. накладывать фильтр на регистр Остатки, и выполнять пересчет. Я правильно понимаю?
И еще вопрос-вывод: раз в ПУБ такой напряг с получением остатков на заданную дату (дату документа), то м.б. получать остатки из бухгалтерских итогов, как это делается в Бухии?
  • 0


Обратно в Программирование и конфигурирование 1С Предприятия 7.7

Похожие темы

  Название темы Автор Статистика Последнее сообщение



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных