Имя: Пароль:
1C
1С v8
Условие в запросе
0 Валидатор
 
27.12.13
22:26
Помогите написать условие в самом запросе, а то путаюсь в них суть такая, есть в управляемом приложении БП 3.0 у меня реквизит - Количество 2, Есть форма документа РТиУ, вывел на форму флажок, у которого тип данных количество2, и нужно в запросе сделать следующее: когда флажок стоит, то данные берутся по Количество2, когда флажок ложь, данные берутся по количеству
что то типа:
ВЫБОР
КОГДА РеализацияТоваровУслуг.Количество2
ТОГДА РеализацияТоваровУслуг.Количество
ИНАЧЕ РеализацияТоваровУслуг.Количество2
КОНЕЦ
но такой вариант не проходит в запросе(
1 France
 
27.12.13
22:28
долго и нудно вспоминать про движения документа.
2 Coldboy
 
27.12.13
22:32
ВЫбор РТиУ.Флажок = ИСТИНА Тогда Количество
ИнАЧЕ РеализацияТоваровУслуг.Количество2
3 PiotrLoginov
 
27.12.13
22:32
"флажок, у которого тип данных количество2" - от этой фразы я завис. То ли торможу под вечер, то ли просто недопонимаю чего-то...
4 PiotrLoginov
 
27.12.13
22:33
(2) "= ИСТИНА"  - необязательно наверное
5 Coldboy
 
27.12.13
22:34
ВЫБОР
    КОГДА РеализацияТоваровУслуг.Флажок = ИСТИНА  ТОГДА РеализацияТоваровУслуг.Количество2
    ИНАЧЕ РеализацияТоваровУслуг.Количество2
КОНЕЦ    

(4) не спорю, но на всякий случай, оно же ниче не замедляет.
6 France
 
27.12.13
22:36
(4) слишком быстро развис... (5) на всякий случай - совершенно непонятно, чего хочет тс.
7 Валидатор
 
27.12.13
22:48
(6) да что не понятно, у меня в ТЧ 2 колонки: количество 1 и количество 2, есть на форме галочка, если ее нажать, данные в ТЧ(сумма, сумма НДС, всего) посчитаются по данным колонки количество2, если она не нажата, то по данным количества1. И потом нужно сделать ТОРГ12, в который попадало бы количество, в зависимости от установки галочки на форме
8 France
 
27.12.13
22:51
(7) ладно, забью на 1, и уточню...  запрос по документам должен быть, али по плану счетов\регистрам?
9 Валидатор
 
27.12.13
22:52
(8) по документу
10 France
 
27.12.13
22:55
(9)  ща нудно буду вытягивать.. а нужно проверять, проведен ли документ?
а конфигурация какая?
ладно - что в итого нужно получить? так быстрее можно найти решение))\
11 Валидатор
 
27.12.13
22:57
(10) конфа БП 3.0, управляемое, мать его, приложение, на обычном давно бы уже все сделал. Нет, не нужно. Есть документ РТиУ, у него в ТЧ 2 колонки, количество1, количество2, есть на форме документа галочка - расчитать по количеству 2, когда ее нажимаем, то ТЧ пересчитывается с учетом количества в колонке Количество2, когда галочки нет, то работает типовой механизм, где ТЧ расчитывается по данным колонки Количество. Потом нужно написать внешнюю ПФ Торг12, в которую будет попадать количество1 или количество2, в зависимости от того, стоит галка или нет) вроде подробно теперь обхъяснил)))
12 France
 
27.12.13
23:01
(11) полный запрос... и запрос должен быть к тч документа, а не к документу..
и, если, количество2 просто реквизит формы, то обломимся..
13 PiotrLoginov
 
27.12.13
23:48
можно, раз уж речь о модификации конфигурации, завести реквизит для этой галки, чтобы в будущем, если кто-то вздумал вновь печатнуть документ, знал, в каком варианте его печатать.

Далее взять процедуры печати из модуля менеджера и изменить запрос к ТЧ Товары, добавив там параметр (булево), например "ПечатьСКоличеством2". Параметр заполнять из того самого реквизита.

В самом запросе изменить те места, где идет запрос к колонке Количество:

ВЫБОР
КОГДА &ПечатьСКоличеством2
ТОГДА РеализацияТоваровУслуг.Номенклатура2
ИНАЧЕ РеализацияТоваровУслуг.Номенклатура
КОНЕЦ
14 PiotrLoginov
 
27.12.13
23:49
(6) что значит "развис" :) ?
15 Валидатор
 
27.12.13
23:54
С ТОРГ12 разобрался, все нормально с пф теперь голову мучаю с счет фактурой, не могу понять откуда в сф выданный формируется печатная форма, хотя она берется из запроса, в котором есть ТаблицаДокумента, в которой есть количество, но как блин засунуть в эту таблицу количество2, 1ска ругается что поле не обнаружено
16 France
 
27.12.13
23:55
(14)  ну, в 3 завис)) и правильно завис)).. и сразу код осуждать, хотя понятно, что нечего обсуждать, т.е, "развис")))
17 France
 
27.12.13
23:56
(15) глянь, не берет ли одноэсина количество не из документа, а из регистров каких.. вроде как в 1С очень часто регистры используются
18 Валидатор
 
27.12.13
23:56
вот запрос по формированию СФ:
ВЫБРАТЬ
    ТаблицаДокумента.НомерТабЧасти КАК НомерТабЧасти,
    ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
    ВЫБОР
        КОГДА ТаблицаДокумента.Товар = "СуммоваяРазница"
            ТОГДА НЕОПРЕДЕЛЕНО
        ИНАЧЕ ТаблицаДокумента.Товар
    КОНЕЦ КАК Товар,
    ТаблицаДокумента.ТоварНаименование КАК ТоварНаименование,
    ТаблицаДокумента.СтранаПроисхождения КАК СтранаПроисхождения,
    ВЫБОР
        КОГДА ТаблицаДокумента.СтранаПроисхождения = ЗНАЧЕНИЕ(Справочник.СтраныМира.РОССИЯ)
            ТОГДА "--"
        ИНАЧЕ ЕСТЬNULL(СтраныМира.Наименование, "")
    КОНЕЦ КАК ПредставлениеСтраны,
    ВЫБОР
        КОГДА ТаблицаДокумента.СтранаПроисхождения = ЗНАЧЕНИЕ(Справочник.СтраныМира.РОССИЯ)
            ТОГДА "--"
        ИНАЧЕ ЕСТЬNULL(СтраныМира.Код, "")
    КОНЕЦ КАК СтранаПроисхожденияКод,
    ТаблицаДокумента.НомерГТД КАК НомерГТД,
    ВЫБОР
        КОГДА ТаблицаДокумента.СтранаПроисхождения = ЗНАЧЕНИЕ(Справочник.СтраныМира.РОССИЯ)
            ТОГДА "--"
        ИНАЧЕ ТаблицаДокумента.ПредставлениеГТД
    КОНЕЦ КАК ПредставлениеГТД,
    ТаблицаДокумента.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ЕСТЬNULL(КлассификаторЕдиницИзмерения.Код, "") КАК ЕдиницаИзмеренияКод,
    ЕСТЬNULL(КлассификаторЕдиницИзмерения.Наименование, "") КАК ЕдиницаИзмеренияНаименование,
    ВЫБОР
        КОГДА ТаблицаДокумента.СуммаВключаетНДС
            ТОГДА ВЫБОР
                    КОГДА ТаблицаДокумента.Количество = 0
                        ТОГДА 0
                    ИНАЧЕ ВЫРАЗИТЬ((ТаблицаДокумента.Сумма - ТаблицаДокумента.СуммаНДС) / ТаблицаДокумента.Количество КАК ЧИСЛО(15, 2))
                КОНЕЦ
        ИНАЧЕ ТаблицаДокумента.Цена
    КОНЕЦ КАК Цена,
    ВЫБОР
        КОГДА ТаблицаДокумента.СуммаВключаетНДС
            ТОГДА ТаблицаДокумента.Сумма
        ИНАЧЕ ТаблицаДокумента.Сумма + ТаблицаДокумента.СуммаНДС
    КОНЕЦ КАК Всего,
    ВЫБОР
        КОГДА ТаблицаДокумента.Товар = "СуммоваяРазница"
            ТОГДА 0
        ИНАЧЕ ВЫБОР
                КОГДА ТаблицаДокумента.СуммаВключаетНДС
                    ТОГДА ТаблицаДокумента.Сумма - ТаблицаДокумента.СуммаНДС
                ИНАЧЕ ТаблицаДокумента.Сумма
            КОНЕЦ
    КОНЕЦ КАК СуммаБезНДС,
    ТаблицаДокумента.СуммаНДС КАК СуммаНДС,
    ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
    &ТекстБезАкциза КАК Акциз,
    ТаблицаДокумента.Ссылка КАК Ссылка,
    ТаблицаДокумента.ЭтоКомиссия,
    ТаблицаДокумента.ВсегоРуб,
    ТаблицаДокумента.НДСРуб,
    ТаблицаДокумента.СуммаБезНДСРуб,
    ВЫБОР
        КОГДА ТаблицаДокумента.Ссылка.ФлажокКоличество = ЛОЖЬ
            ТОГДА ТаблицаДокумента.Количество
        ИНАЧЕ ТаблицаДокумента.Количество2
    КОНЕЦ КАК Количество
ИЗ
    ТаблицаДокумента КАК ТаблицаДокумента
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтраныМира КАК СтраныМира
        ПО (СтраныМира.Ссылка = ТаблицаДокумента.СтранаПроисхождения)
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторЕдиницИзмерения КАК КлассификаторЕдиницИзмерения
        ПО (КлассификаторЕдиницИзмерения.Ссылка = ТаблицаДокумента.ЕдиницаИзмерения)

УПОРЯДОЧИТЬ ПО
    НомерТабЧасти,
    НомерСтроки
19 Валидатор
 
27.12.13
23:57
ТаблицаДокумента - временная таблица, у которой вон куча полей, так почему есть поле Количество, а когда я добавляю Количество2, и запускаю Печатную форму, он ругается что поле не обнаружено?
20 Валидатор
 
27.12.13
23:59
Причем такой вариант: ТаблицаДокумента.Ссылка.ФлажокКоличество = ЛОЖЬ он видит, а если я сделаю
ТаблицаДокумента.Ссылка.Товары.Количество2, то получу таблицу значений, и в макет ПФ у меня попадет #####
21 Валидатор
 
28.12.13
00:12
как быть?)
22 France
 
28.12.13
00:21
да глянуть, как формируется ТаблицаДокумента... кто сказал, что это в реальности табличная часть документа?
23 Валидатор
 
28.12.13
00:22
еще и ПФ внешняя, а в управляемом приложении нельзя отладчиком ведь посмотреть печатную форму, как было в обычном приложении?
24 Валидатор
 
28.12.13
00:22
(22) не понятно в том то и дело, как она формируется, хочешь скину обработку?
25 France
 
28.12.13
00:29
(24)  в общих модулях нужно поискать...
26 Валидатор
 
28.12.13
00:29
http://rusfolder.com/39328156 - база
http://rusfolder.com/39328713 - внешняя ПФ
300р на телефон тому, кто поможет разобраться с этой херней)
27 France
 
28.12.13
00:30
(26) не, вопрос не в деньгах)) дни ближайшие запланированы под всякую околоновогоднюю хрень..))
28 Валидатор
 
28.12.13
00:31
(27) просто завтра экзамен( надо это сделать( а вариантов у меня нет(((
29 Валидатор
 
28.12.13
00:31
(27) с ТОРг12 разобрался еле еле, а вот с СФ вообще че то никак(
30 France
 
28.12.13
00:35
(29) данные для сф всегда берут из регистров... т.е, только у проведенного документа (так же, как и для торг 12).. так что, смотреть нужно в проводки.. поэтому, у тебя все правильно формировалось бы, если бы ты при проведении документа анализировал установку признака на форме..
т.е, если признак установлен, то в проводки нужно отправлять данные из Количество 2, если не установлен, то работает типовой вариант..
и, собственно, никакие запросы не нужны.. и изменения печатных форм..
31 Валидатор
 
28.12.13
00:36
(30) в обычном приложении обработкапроведения была, а в управляемом как?
32 Валидатор
 
28.12.13
00:37
а тоже так нашел
33 Валидатор
 
28.12.13
00:37
только совсем не понятно как там учитывать данные из Количество2)
34 Валидатор
 
28.12.13
01:13
люди, помогите)
35 France
 
28.12.13
01:22
(34) сорри, но я пока пас...
36 ilya_i
 
28.12.13
02:18
Решение в лоб в запросе из (18) присоединить тч товары документа, но надо быть уверенным что строки не задвоятся. Правильней уже сказали, найти как формируется временная таблица "ТаблицаДокумента" и добавить поле "Количество2", но псевдоним бы лучше от греха подальше дать другой, вдруг 1С это имя как-то использует.
37 Валидатор
 
28.12.13
12:06
(36) то, что засунуть в формировавшуюся таблицу ТаблиДокумента количество2, это ясно, я пол ночи искал, где это происходит, и так и не нашел(
38 PiotrLoginov
 
28.12.13
15:53
(16) понял )
39 PiotrLoginov
 
28.12.13
15:59
(23) можно. проще всего обработкой ТестированиеПечатныхФорм
40 Валидатор
 
29.12.13
03:11
как с таблицей документа быть в запросе функии ТекстЗапросаПечатьСчетовФактур()? Если я добавляю Количество2, летит ошибка, что поле не найдено, а если я пишу Ссылка.Флажок, то получаю флажок объекта(документа РтиУ), подумал, а что если получить так ТЧ товары документа РТИУ, в итоге сделал так: Ссылка.Товары, и в макет у меня попадает теперь вот так ####, а когда 2 раза нажимаю, пишет таблица значений
41 Валидатор
 
29.12.13
04:26
И Еще, в функции ТекстЗапросаДанныеДляПечатиСчетовФактур, у меня формируются данные только по ТаблицаДокумента, а когда я смотрю отладчиком дальше, что происходит с этой таблицей документа, она попадает в массив, где есть еще 3 элемента:
ВременнаяТаблицаНаличиеТоваров
Реквизиты
ВТ_РублевыеСуммыДокументовВВалюте
ВременнаяТаблицаДокумента
Так вот в обработке я не нашел где они формируются, тупо даже поиском, единственное место где они появляются, это модули менеджеров разных документов, в функциях: ТекстЗапросаДанныеДляПечатиСчетовФактур экспортных, как тогда данные попадают в обработку? запутался че то ваще
42 Валидатор
 
29.12.13
04:38
короче надо было сделать так: в РТИУ в модуле менеджера в функции ТекстЗапросаДанныеДляПечатиСчетовФактур добавить количество 2 в запросе, а потом в обработке в ТаблицаДокумента условие прописать на это количество2, я все таки сделал это управляемое приложение, аж горд)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан