Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите в понимании кода
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Agapov_Stas
Конфигурация Управление Торговый Предприятием 1.2.9.1
В общем модуле "УправлениеЗапасамиПартионныйУчет" в Процедуре "СписаниеСоСклада" есть такие строки
// Партии для данного учета
ДеревоОстатковПартий = СтруктураПараметров["ДеревоПартийТоваровНаСкладахБух"];


В результате в ДеревоОстатковПартий подает список партий с которых можно списывать товар -
Объясните, пожалуйста, как работает данная строка
Объясню суть - необходимо менять дату на которую формируется данное дерево партий
Спасибо!
Vofka
Дерево партий формируется в процедуре ПолучитьТаблицуПартийНаСкладах общего модуля УправлениеЗапасамиПартионныйУчет.
pumbaE
в процедуре ПолучитьТаблицуПартийНаСкладах общего модуля УправлениеЗапасамиПартионныйУчет.
СтруктураДата = Новый Структура("Дата");
    ПолучитьРеквизитыОбъекта(ОбрабатываемыйДокумент, СтруктураДата);
    
    Если ДокументМоментВремени = Неопределено Тогда
        ДокументМоментВремени = Новый МоментВремени(СтруктураДата.Дата, ОбрабатываемыйДокумент);
    КонецЕсли;


ДокументМоментВремени используется для получения остатков.
Acid
а что непонятного? структура - это фактически список индексов полей, по которым нужно выполнить отбор. т.о. из массива вытягиваются значения массива, спозиционированные по значениям индексов (структуры).
Agapov_Stas
А вообще реально как то подредактировать данную процедура, чтоб проводки делались в разрезе даты строки
Если в документе несколько строк то проводки делать разными датами.


Цитата(Acid @ 24.09.12, 11:37) необходимо зарегистрироваться для просмотра ссылки
а что непонятного? структура - это фактически список индексов полей, по которым нужно выполнить отбор. т.о. из массива вытягиваются значения массива, спозиционированные по значениям индексов (структуры).

Непонятно было где задается параметр отбора "ДАТА" на которую формируется данный массив !
Т.е. если у меня документ от 20.09 (на остатке материала 0 ) а приход данного материала был 21.09 то мне нужно получить массив с этой партией
и сделать проводку 21м число - но так чтоб не менять дату документа !
И если в табличной части есть товары по которым на 20.09 есть остатки - проводку по данным позициям делать 20.09 (дата документа)
logist
Цитата(Agapov_Stas @ 24.09.12, 12:37) необходимо зарегистрироваться для просмотра ссылки
Т.е. если у меня документ от 20.09 (на остатке материала 0 ) а приход данного материала был 21.09 то мне нужно получить массив с этой партией
и сделать проводку 21м число - но так чтоб не менять дату документа !

А для каких целей тогда нужна статичная дата документа? Суть вопроса нарушает логику процесса - нельзя продать товар которого нет. Может Ваша проблема решается другим путем...
Agapov_Stas
Это документ не продажи а списания в производства
это слодное производство и в одном документе набивается все что для него необходимо и галочками проставляется списывать или не трогать
Есть в таб части реквизит дата - т.е. если он заполнен- то планирется срезать остатки и делать проводку этим числом - если нет - то датой документа
Т.к. сырья много оно поступает постепенно а требование накладная набивается сразу
и бухгалтер не хочет разделять данный документ на несколько
а вводить приход задним числом, сами понимаете, нельзя!
вот поэтому и возникла такая необходимость - получается что если все так реализовать то в оборотке все будет нормально
списание будет после прихода.
logist
Цитата(Agapov_Stas @ 24.09.12, 12:52) необходимо зарегистрироваться для просмотра ссылки
и бухгалтер не хочет разделять данный документ на несколько

Ну вот и организационная причина делания всяких дырок - "не хочет". Печально это sad.gif

Цитата(Agapov_Stas @ 24.09.12, 12:52) необходимо зарегистрироваться для просмотра ссылки
получается что если все так реализовать то в оборотке все будет нормально

Не забудьте про остальные регистры.
alex040269
Цитата(Agapov_Stas @ 24.09.12, 12:52) необходимо зарегистрироваться для просмотра ссылки
получается что если все так реализовать то в оборотке все будет нормально

в оборотке будет нормально, если товар списан 15, поступил 16 а оборотку вы смотрете за 01-31, а если списали 31, товар поступил 01, то в обортка вполне может быть красной. просто документ у вас должен проводиться после того как все товары поступили.

опять же, если сегодня 24-е, а партии вы хотоие получать за 25-е или 26-е, то 1С тут не причем - это к гадалкам!

wink.gif
Agapov_Stas
Цитата(alex040269 @ 24.09.12, 13:22) необходимо зарегистрироваться для просмотра ссылки
в оборотке будет нормально, если товар списан 15, поступил 16 а оборотку вы смотрете за 01-31, а если списали 31, товар поступил 01, то в обортка вполне может быть красной. просто документ у вас должен проводиться после того как все товары поступили.


Нет документ должен списывать именно 16того! а не 15го - в этом вся и суть а дата документа 15го ... т.е. период проводки = 16 числа
Посмотрел формирование запроса структура партий формируется одна на весь документ (
ВЫБРАТЬ
    Остатки.Счет КАК СчетУчета,
    Остатки.Субконто1 КАК Номенклатура,
    &ПустаяХарактеристика КАК ХарактеристикаНоменклатуры,
    &ПустаяСерия КАК СерияНоменклатуры,
    &ПустойЗаказ КАК ЗаказПокупателя,
    0 КАК СовпалЗаказ,
    &ПустоеКачество КАК Качество,
    &ПустаяНоменклатурнаяПозиция КАК НоменклатурнаяПозиция,
    ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) КАК ДокументОприходованияДата,
    Остатки.Субконто2 КАК ДокументОприходования,
    &ПустаяДата КАК ДокументОтгрузкиДата,
    &ПустаяОтгрузка КАК ДокументОтгрузки,
    Остатки.Субконто3 КАК Склад,
    Остатки.Организация КАК Организация,
    Остатки.НалоговоеНазначение КАК НалоговоеНазначение,
    СУММА(ВЫБОР КОГДА Остатки.КоличествоОстатокДт ЕСТЬ NULL ТОГДА 0 ИНАЧЕ Остатки.КоличествоОстатокДт КОНЕЦ) КАК Количество,
    СУММА(ВЫБОР КОГДА Остатки.СуммаОстатокДт ЕСТЬ NULL ТОГДА 0 ИНАЧЕ Остатки.СуммаОстатокДт КОНЕЦ) КАК Стоимость,
    СУММА(ВЫБОР КОГДА Остатки.СуммаНУОстатокДт ЕСТЬ NULL ТОГДА 0 ИНАЧЕ Остатки.СуммаНУОстатокДт КОНЕЦ) КАК СтоимостьНУ
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&МоментКон, Счет В (&СчетаУчетаНСП), &ВидысубконтоНСП,Субконто1 В (&Номенклатура) И Субконто3 В (&Склады) И Организация В (&Организации) И (НалоговоеНазначение В(&НалоговыеНазначения))) КАК Остатки

СГРУППИРОВАТЬ ПО
    Остатки.Счет,
    Остатки.Субконто1,
    Остатки.Субконто2,
    Остатки.Субконто3,
    Остатки.Организация,
    Остатки.НалоговоеНазначение        
ИТОГИ ПО Номенклатура



Субконто1 В (&Номенклатура)


формируется сразу на все строки в документе а не построчно .... есть у кого какие то мысли как можно срезать партии в разрезе разных моментов времени ?
И Еще вопрос МоментВремени имеет такую структуру (дата, ссылка)
Если подменить Дату то все равно не попадают партии введенные позже документа ...
Как это можно обойти ?

Acid
Цитата(Agapov_Stas @ 24.09.12, 13:45) необходимо зарегистрироваться для просмотра ссылки
формируется сразу на все строки в документе а не построчно .... есть у кого какие то мысли как можно срезать партии в разрезе разных моментов времени ?
И Еще вопрос МоментВремени имеет такую структуру (дата, ссылка)
Если подменить Дату то все равно не попадают партии введенные позже документа ...
Как это можно обойти ?

Пишите свою процедуру определения партий к списанию, и подставляйте её.
*прежде чем чего-то сделать, проанализируйте:
1 - не противоречит ли здравому смыслу?
2 - правилам учета?
3 - законно ли?

*был случай - я помню после того как товар (в сравнительно больших объемах) списывался с одного склада (по учету), которого там не было, но был на других складах, и естественно физически отгрузка была оттуда (т.е. перемещений не делали). Дык посадили тамошнего директора в КПЗ на пару-тройку месяцев (статью уже не припомню).

зы: а теперь внимание на вопрос: "Кто еще в данной манипуляции может попасть под действие уголовной статьи?"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.