Имя: Пароль:
1C
1С v8
Движения по регистрам
0 immurz
 
05.09.13
11:19
Есть странный вопрос - у меня есть документ, у документа есть дата и табличная часть. У каждой записи в табличной части тоже есть дата никакого отношения к дате документа не имеющая. При проведении в таблице движений встает дата документа. Я хочу, что бы там вставала дата из табличной части. Это реально сделать?
1 Godofsin
 
05.09.13
11:19
да
2 Wobland
 
05.09.13
11:19
реально
3 Ёпрст
 
05.09.13
11:20
яя.. натюрлих.
4 immurz
 
05.09.13
11:20
Спасибо! А как это сделать? )
5 Гефест
 
05.09.13
11:21
легко! переписать обработку проведения
6 Wobland
 
05.09.13
11:21
(4) вот тебе оператор присвоения: =
7 Alex S D
 
05.09.13
11:21
период = дата
8 Crush
 
05.09.13
11:22
(6) Дал бы ему еще табличную часть
9 Godofsin
 
05.09.13
11:23
для каждого строчка из ТвояТЧ цикл
    ТвойРегистр.Период = Строчка.ТвояДата;
КонецЦикла;
10 immurz
 
05.09.13
11:29
А где это пилить нужно?

В процедуре обработки проведения?

Например есть строка
[CODE]ДоходыИРасходыСервер.ОтразитьВыручкуИСебестоимостьПродаж(ДополнительныеСвойства, Движения, Отказ);[/CODE]

Т.е. я тут
[CODE]
Процедура ОтразитьВыручкуИСебестоимостьПродаж(ДополнительныеСвойства, Движения, Отказ) Экспорт

    ТаблицаДвижений = ДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаВыручкаИСебестоимостьПродаж;

    Если Отказ ИЛИ ТаблицаДвижений.Количество() = 0 Тогда
        Возврат;
    КонецЕсли;

    ДвиженияРасчеты = Движения.ВыручкаИСебестоимостьПродаж;
    ДвиженияРасчеты.Записывать = Истина;
    ДвиженияРасчеты.Загрузить(ТаблицаДвижений);
    
КонецПроцедуры
[/CODE]

Должен перебрать таблицу движений и установить у каждой строки нужный мне период?
11 Wobland
 
05.09.13
11:32
(10) сформируй свою ТаблицуДвижений
12 Alex S D
 
05.09.13
11:32
строка движения <> Строка таб. части документа
13 Crush
 
05.09.13
11:42
Найди где формируется ДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаВыручкаИСебестоимостьПродаж, а там найди Период = ...Дата и поменяй
14 Wobland
 
05.09.13
11:43
+(13) а потом проведи документ какого-нибудь другого вида
15 immurz
 
05.09.13
11:54
(14)
И будет швах? )
16 Wobland
 
05.09.13
11:54
(15) откуда ж я знаю?
17 Crush
 
05.09.13
11:59
Соответственно, да. Если период присваивается в экспортной процедуре или функции, то лучше сделать проверку на вид документа перед присвоением периода.
18 immurz
 
05.09.13
12:04
А модуле объекта в процедуре обработки проведения я могу скорректировать движения? Что бы не влиять на остальные документы.
19 Godofsin
 
05.09.13
12:08
(18) да
20 Godofsin
 
05.09.13
12:08
создай свою обработку проведения, с блэк-джекомт и шлюхами
21 Crush
 
05.09.13
12:09
(18) Если у тебя есть возможность соотнести строки таблицы движений со строками табличной части, то конечно да.
22 immurz
 
05.09.13
12:21
Ясно.

Нашел я где формируется таблица движений. В запросе есть строка:    
|    &Период КАК Период,

В вызывающей функции

Запрос.УстановитьПараметр("Период",                                   Реквизиты.Период);

Это в модуле менеджера нужного документа.

Т.е. если я вместо "|    &Период КАК Период", напишу - "&Дата КАК Период" , то все должно работать как мне нужно?
23 immurz
 
05.09.13
12:21
Т.е. если я вместо "|    &Период КАК Период", напишу - "Дата КАК Период" , то все должно работать как мне нужно?

Вот так
24 Wobland
 
05.09.13
12:24
(23) может, и должно. а может и нет
25 Godofsin
 
05.09.13
12:34
(23) нет
26 Godofsin
 
05.09.13
12:34
однозначно
27 Wobland
 
05.09.13
12:34
(26) пачему?
28 immurz
 
05.09.13
13:00
И правда - пачиму? ) Я же выбираю не константу для всех строк, а значения реквизита "дата" для каждой строки?
29 Wobland
 
05.09.13
13:04
(28) а у этих строк есть такое поле?
30 immurz
 
05.09.13
13:12
(29) Да, я его добавил )
31 Wobland
 
05.09.13
13:39
(30) а в запрос?
32 immurz
 
05.09.13
13:47
И в запрос. Сейчас узнаю результат.
33 Godofsin
 
05.09.13
13:53
(27) патамушта выражение "Дата КАК Период" синтаксически неверно + не хватает изменения еше одной строки.
34 immurz
 
05.09.13
13:55
(33)
А не могли бы Вы мне подсказать как верно? ) Результатов данное изменение не дало пока никаких.
35 Wobland
 
05.09.13
13:59
(33) работает же

ВЫБРАТЬ
    Дата,
    &Период
ИЗ
    Документ.НачислениеЗарплаты КАК НачислениеЗарплаты
36 immurz
 
05.09.13
14:04
Мне нужна дата из табличной части для того что бы указать ее в таблице движений для каждой строки ТЧ отдельно, а не использовать общую дату проведения документа. Видимо стоит покапать в строну движений которые используют дату из ТЧ.
37 Wobland
 
05.09.13
14:05
(34) ты видел, сколько там кода? ты хочешь от человека чудес телепатии?
38 immurz
 
05.09.13
14:42
В общем сделал так:

Для Каждого ПиПиПи Из ДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаВыручкаИСебестоимостьПродаж Цикл
        Для Каждого СиСиСи Из ЭтотОбъект.Товары Цикл
            Если ПиПиПи.АналитикаУчетаНоменклатуры.Номенклатура = СиСиСи.Номенклатура Тогда
                ПиПиПи.Период = СиСиСи.Дата;
            КонецЕсли;
        КонецЦикла;    
    КонецЦикла;
    
    ДоходыИРасходыСервер.ОтразитьВыручкуИСебестоимостьПродаж(ДополнительныеСвойства, Движения, Отказ);

все работает.

Хотя душа просит здесь:

Функция ТекстЗапросаТаблицаВыручкаИСебестоимостьПродаж()
    
    ТекстЗапроса = "
    |ВЫБРАТЬ
    |    ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
    |    &Период КАК Период,
    |    &Подразделение КАК Подразделение,
    |    РегистрАналитикаУчетаПоПартнерам.КлючАналитики КАК АналитикаУчетаПоПартнерам,
    |    ВтАналитика.АналитикаНоменклатуры КАК АналитикаУчетаНоменклатуры,
    |    ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
    |
    |    ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоВидамЗапасов ТОГДА
    |        ТаблицаВидыЗапасов.ВидЗапасов
    |    ИНАЧЕ
    |        Неопределено
    |    КОНЕЦ КАК ВидЗапасов,
    |
    |    ТаблицаВидыЗапасов.Количество КАК Количество,
    |    ВЫРАЗИТЬ(ТаблицаВидыЗапасов.СуммаСНДС
    |        * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(15,2)) КАК СуммаВыручки,
    |
    |    ВЫРАЗИТЬ((ТаблицаВидыЗапасов.СуммаСНДС
    |            -ТаблицаВидыЗапасов.СуммаНДС)
    |            * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(15,2)) КАК СуммаВыручкиБезНДС,
    |
    |    ВЫРАЗИТЬ((ТаблицаВидыЗапасов.СуммаСНДС
    |            -ТаблицаВидыЗапасов.СуммаНДС)
    |            * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(15,2)) КАК СуммаВыручкиРегл,
    |
    |    ВЫБОР КОГДА ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) Тогда
    |        ВЫРАЗИТЬ(ТаблицаВидыЗапасов.СуммаСНДС * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(15,2))
    |    ИНАЧЕ
    |        0
    |    КОНЕЦ КАК Себестоимость,
    |    ВЫБОР КОГДА ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) Тогда
    |            ВЫРАЗИТЬ((ТаблицаВидыЗапасов.СуммаСНДС
    |                    -ТаблицаВидыЗапасов.СуммаНДС)
    |                    * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(15,2))
    |    ИНАЧЕ
    |        0
    |    КОНЕЦ КАК СебестоимостьБезНДС,
    |
    |    ВЫБОР КОГДА ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) Тогда
    |            ВЫРАЗИТЬ((ТаблицаВидыЗапасов.СуммаСНДС
    |                    -ТаблицаВидыЗапасов.СуммаНДС)
    |                    * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(15,2))
    |    ИНАЧЕ
    |        0
    |    КОНЕЦ КАК СебестоимостьРегл,
    |
    |    &ХозяйственнаяОперация КАК ХозяйственнаяОперация
    |
    |ИЗ
    |    Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ТаблицаВидыЗапасов
    |
    |    ЛЕВОЕ СОЕДИНЕНИЕ
    |        ВтАналитика КАК ВтАналитика
    |    ПО
    |        ТаблицаВидыЗапасов.Номенклатура = ВтАналитика.Номенклатура
    |        И ТаблицаВидыЗапасов.Характеристика = ВтАналитика.Характеристика
    |
    |    ЛЕВОЕ СОЕДИНЕНИЕ
    |        РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам
    |    ПО
    |        РегистрАналитикаУчетаПоПартнерам.Организация = &Организация
    |        И РегистрАналитикаУчетаПоПартнерам.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
    |        И ТаблицаВидыЗапасов.Партнер = РегистрАналитикаУчетаПоПартнерам.Партнер
    |ГДЕ
    |    ТаблицаВидыЗапасов.Ссылка = &Ссылка
    |    И ТаблицаВидыЗапасов.Количество <> 0
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    ТаблицаТовары.НомерСтроки                      КАК НомерСтроки,
    |    &Период                                        КАК Период,
    //|    ТаблицаТовары.Дата                             КАК Период,    
    |    &Подразделение                                 КАК Подразделение,
    |    РегистрАналитикаУчетаПоПартнерам.КлючАналитики КАК АналитикаУчетаПоПартнерам,
    |    ВтАналитика.АналитикаНоменклатуры              КАК АналитикаУчетаНоменклатуры,
    |    ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга)      КАК ТипЗапасов,
    |    ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)  КАК ВидЗапасов,
    |
    |    ТаблицаТовары.Количество КАК Количество,
    |    ВЫРАЗИТЬ(
    |        (ТаблицаТовары.Сумма
    |        + &ЦенаВключаетНДС * ТаблицаТовары.СуммаНДС)
    |         * &КоэффициентПересчетаВВалютуУпр
    |        КАК ЧИСЛО(15,2)
    |    ) КАК СуммаВыручки,
    |
    |    ВЫРАЗИТЬ(
    |        (ТаблицаТовары.Сумма
    |            + &ЦенаВключаетНДС * ТаблицаТовары.СуммаНДС - ТаблицаТовары.СуммаНДС)
    |             * &КоэффициентПересчетаВВалютуУпр
    |        КАК ЧИСЛО(15,2)
    |    ) КАК СуммаВыручкиБезНДС,
    |
    |    ВЫРАЗИТЬ(
    |        (ТаблицаТовары.Сумма
    |            + &ЦенаВключаетНДС * ТаблицаТовары.СуммаНДС - ТаблицаТовары.СуммаНДС)
    |             * &КоэффициентПересчетаВВалютуРегл
    |        КАК ЧИСЛО(15,2)
    |    ) КАК СуммаВыручкиРегл,
    |    0 КАК Себестоимость,
    |    0 КАК СебестоимостьБезНДС,
    |    0 КАК СебестоимостьРегл,
    |
    |    &ХозяйственнаяОперация КАК ХозяйственнаяОперация
    |ИЗ
    |    Документ.ОтчетОРозничныхПродажах.Товары КАК ТаблицаТовары
    |
    |    ЛЕВОЕ СОЕДИНЕНИЕ
    |        ВтАналитика КАК ВтАналитика
    |    ПО
    |        ТаблицаТовары.Номенклатура     = ВтАналитика.Номенклатура
    |        И ТаблицаТовары.Характеристика = ВтАналитика.Характеристика
    |
    |    ЛЕВОЕ СОЕДИНЕНИЕ
    |        РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам
    |    ПО
    |        РегистрАналитикаУчетаПоПартнерам.Организация = &Организация
    |        И РегистрАналитикаУчетаПоПартнерам.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
    |        И ТаблицаТовары.Партнер = РегистрАналитикаУчетаПоПартнерам.Партнер
    |ГДЕ
    |    ТаблицаТовары.Ссылка = &Ссылка
    |    И ТаблицаТовары.Количество <> 0
    |    И ТаблицаТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
    |
    |УПОРЯДОЧИТЬ ПО
    |    НомерСтроки
    |    
    |;
    |/////////////////////////////////////////////////////////////////////////////
    |";
    
    Возврат ТекстЗапроса;

Но пока не знает как )
39 immurz
 
05.09.13
20:05
В общем слепой. В данном документа движения по нужному мне регистру берутся из другой табличной части которая заполняется сама при проведении документа. Всем спасибо за ответы!! Вместе веселей! )