|
v7: не правильно выполняется запрос | ☑ | ||
---|---|---|---|---|
0
nacinayu1c
16.08.11
✎
16:59
|
привет всем отчет книга учета товара (готовой продукции) за год четыре печатных формы поквартально
вот код с запросом за первый квартал но есть одно но ни как не получается в графе отгружено номер , дату документа(РасходТовара) я написал следующее Если (ИТ.Операция.Документ.Вид() <> "ПоступлениеТоваров") и (ИТ.Операция.Документ.Вид() <> "ПоступлениеТоваровВРозницу") Тогда Продолжить; Иначе ПТЕНИД1 = (ИТ.Субконто(1).Наименование+" "+ИТ.Операция.Документ.Вид()+" "+ИТ.Операция.Документ.НомерДок+" "+Ит.Операция.Документ.ДатаДок); //Иначе // ПТЕНИД1 = "-"; КонецЕсли; это для графы поступило а это для отгружено Если (ИТ.Операция.Документ.Вид() <> "РасходТовара") и (ИТ.Операция.Документ.Вид() <> "РасходТовараРозница") Тогда ОПДЕНИД1 = (ИТ.Субконто(1).Наименование+" "+ИТ.Операция.Документ.Вид()+" "+ИТ.Операция.Документ.НомерДок+" "+ИТ.Операция.Документ.ДатаДок); Продолжить; КонецЕсли; но если использовать их то данные вообще не выводятся если не использовать первое условие тогда выводится почемуто только одна строка с расходом хотя за первый квартал есть расходы почти по всему товару вот весь код Если (КВ1 = 1) И (КВ2 <> 1) И (КВ3 <> 1) И (КВ4 <> 1) Тогда Табл1 = 1; КонецЕсли; Если (КВ1 <> 1) И (КВ2 = 1) И (КВ3 <> 1) И (КВ4 <> 1) Тогда Табл1 = 2; КонецЕсли; Если (КВ1 <> 1) И (КВ2 <> 1) И (КВ3 = 1) И (КВ4 <> 1) Тогда Табл1 = 3; КонецЕсли; Если (КВ1 <> 1) И (КВ2 <> 1) И (КВ3 <> 1) И (КВ4 = 1) Тогда Табл1 = 4; КонецЕсли; Если (КВ1 = 1) И (КВ2 = 1) И (КВ3 <> 1) И (КВ4 <> 1) Тогда Табл1 = 12; КонецЕсли; Если (КВ1 = 1) И (КВ2 = 1) И (КВ3 = 1) И (КВ4 <> 1) Тогда Табл1 = 13; КонецЕсли; Если (КВ1 = 1) И (КВ2 = 1) И (КВ3 = 1) И (КВ4 = 1) Тогда Табл1 = 14; КонецЕсли; Если (Табл1 = 1) или (Табл1 = 12) или (Табл1 = 13) или (Табл1 = 14) Тогда Табл_1 = СоздатьОбъект("Таблица"); Табл_1.ИсходнаяТаблица("1Квартал"); Табл_1.ПараметрыСтраницы(2,90); Табл_1.ВывестиСекцию("Шапка"); //Получим бух итоги со счета по коду "004.3" ИТ = СоздатьОбъект("БухгалтерскиеИтоги"); ИТ.ИспользоватьСубконто(ВидыСубконто.Контрагенты); ИТ.ИспользоватьСубконто(ВидыСубконто.Номенклатура); ИТ.ИспользоватьСубконто(ВидыСубконто.Партии); ИТ.ПериодКВ(1,ГодОтчета); ИТ.ВыполнитьЗапрос(ИТ.НачПериода(),ИТ.КонПериода(), "004.3",,,,"Проводка"); ИТ.ВыбратьСубконто(1); Пока ИТ.ПолучитьСубконто(1) = 1 Цикл ИТ.ВыбратьСубконто(2); Пока ИТ.ПолучитьСубконто(2) = 1 Цикл ОстКолВо = ИТ.СКД("К"); остСтоимость = ИТ.СКД("С"); //1Квартал оНДПИ1 = "-"; оСумма1 = "-"; рРасходы1 = "-"; рНДПИ1 = "-"; рСуммаД1 = 0; рКолВо1 = 0; ИТоСумма2 = 0; СуммаРасс =0; //Получим данные 1вого квартала и выведем их на секцию "строка" //объщие колонки (Поставщик товара, документ, его номер и дата),(наименование, вид (сорт, артикул) товара); //Поставщик товара, документ, его номер и дата Если (ИТ.Операция.Документ.Вид() <> "ПоступлениеТоваров") и (ИТ.Операция.Документ.Вид() <> "ПоступлениеТоваровВРозницу") Тогда Продолжить; Иначе ПТЕНИД1 = (ИТ.Субконто(1).Наименование+" "+ИТ.Операция.Документ.Вид()+" "+ИТ.Операция.Документ.НомерДок+" "+Ит.Операция.Документ.ДатаДок); //Иначе // ПТЕНИД1 = "-"; КонецЕсли; ////наименование, вид (сорт, артикул) товара НВСАТ1 = ИТ.Субконто(2); ////Остаток нереализованного товара ////Кол-во ОНТКолВо1 = ИТ.СНД("К"); ////стоимость(руб.) ОНТСтоимость1 = ИТ.СНД("С"); ////поступило (изготовлено) ////Цена Если ИТ.ДО("К")<>0 Тогда Если ИТ.ДО("С")<>0 Тогда Если ИТ.ДО("К")<>"" Тогда Если ИТ.ДО("С")<>"" Тогда ПИЦена1 = Окр(ИТ.ДО("С") / ИТ.ДО("К")); Иначе ПИЦена1 = 0; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; ////Кол-во ПИКолВо1 =ИТ.ДО("К"); ////стоимость(руб.) ПИСтоимость1 = ИТ.ДО("С"); ////Оплачено //не заполняется ////отгружено ////покупатель, документ, его номер и дата Если (ИТ.Операция.Документ.Вид() <> "РасходТовара") и (ИТ.Операция.Документ.Вид() <> "РасходТовараРозница") Тогда ОПДЕНИД1 = (ИТ.Субконто(1).Наименование+" "+ИТ.Операция.Документ.Вид()+" "+ИТ.Операция.Документ.НомерДок+" "+ИТ.Операция.Документ.ДатаДок); Продолжить; КонецЕсли; ////Кол-во оКолВо1 = ИТ.КО("К"); ////стоимость по отпускным ценам (руб.) оСПОЦ1 = ИТ.КО("С"); Спр = СоздатьОбъект("Справочник.Договоры"); Спр.ИспользоватьВладельца(ИТ.Субконто(1).Наименование); спр.ВыбратьЭлементы(); Проц = Спр.ПроцентКомиссии; ////реализовано ////номер, дата платежной инструкции //рНДПИ1 =; ////Сумма дохода (руб.) рСуммаД1 = ИТ.КО("С") * Проц/100; ////Кол-во рКолВо1 = ИТ.КО("К"); //Иначе //ОПДЕНИД1 = "-"; // оКолВо1 = "-"; // оСПОЦ1 = "-"; //КонецЕсли; СуммРуб = 0; СуммРуб = рСуммаД1 + СуммРуб; Табл_1.ВывестиСекцию("Строка"); КонецЦикла; КонецЦикла; Табл_1.ВывестиСекцию("Итого1"); Табл_1.Показать("1 Квартал"); КонецЕсли; |
|||
1
andrewks
16.08.11
✎
17:01
|
пля... пойду-ка я лучше домой...
|
|||
2
nacinayu1c
16.08.11
✎
17:06
|
помогите пожалуйста
|
|||
3
Drac0
16.08.11
✎
17:06
|
(0) А где у тебя ВыбратьПериоды()?
|
|||
4
nacinayu1c
16.08.11
✎
17:07
|
а где их вуберать???
|
|||
5
Drac0
16.08.11
✎
17:07
|
+(3) Ну и соответсвенно цикл по получитьпериод()
|
|||
6
Сияющий Асинхраль
16.08.11
✎
17:08
|
Ошибок куча, и невнятностей. Зачем пишешь использовать три субконто, при выборе однако используешь 2, пишешь запрос с периодичностью по проводкам, а периоды не выбираешь, и вот такие
Если ИТ.ДО("С")<>"" Тогда вещи тоже очень странными кажутся. |
|||
7
nacinayu1c
16.08.11
✎
17:10
|
ИТ.ВыбратьСубконто(1);
Пока ИТ.ПолучитьСубконто(1) = 1 Цикл ИТ.ВыбратьСубконто(2); Пока ИТ.ПолучитьСубконто(2) = 1 Цикл ИТ.ВыбратьПериоды(); Пока Ит.ПолучитьПериод() = 1 Цикл так будет правильно? |
|||
8
Drac0
16.08.11
✎
17:10
|
(4)
ИТ.ВыбратьПериоды(); Пока ИТ.ПолучитПериод() = 1 Цикл Если (ИТ.Операция.Документ.Вид() <> "РасходТовара") и (ИТ.Операция.Документ.Вид() <> "РасходТовараРозница") Тогда ОПДЕНИД1 = (ИТ.Субконто(1).Наименование+" "+ИТ.Операция.Документ.Вид()+" "+ИТ.Операция.Документ.НомерДок+" "+ИТ.Операция.Документ.ДатаДок); Продолжить; КонецЕсли; КонецЦикла |
|||
9
Drac0
16.08.11
✎
17:11
|
+(8) Это к примеру. Вместо ИТ.Субконто(1) лучше обращаться к субконто дебета или кредита проводки.
|
|||
10
Mnemonic1C
16.08.11
✎
17:15
|
А потом появляются темы Почему на habrahabr не любят 1С-ников?
|
|||
11
nacinayu1c
16.08.11
✎
17:15
|
всеравно расход не получаю
|
|||
12
nacinayu1c
16.08.11
✎
17:18
|
так же правильно будет или я опять чтото не правильно сделал
ИТ.ВыбратьПериоды(); Пока Ит.ПолучитьПериод() = 1 Цикл //Поставщик товара, документ, его номер и дата Если (ИТ.Операция.Документ.Вид() <> "ПоступлениеТоваров") и (ИТ.Операция.Документ.Вид() <> "ПоступлениеТоваровВРозницу") Тогда Продолжить; Иначе ПТЕНИД1 = (ИТ.Субконто(1).Наименование+" "+ИТ.Операция.Документ.Вид()+" "+ИТ.Операция.Документ.НомерДок+" "+Ит.Операция.Документ.ДатаДок); КонецЕсли; ////отгружено ////покупатель, документ, его номер и дата Если (ИТ.Операция.Документ.Вид() <> "РасходТовара") и (ИТ.Операция.Документ.Вид() <> "РасходТовараРозница") Тогда Продолжить; Иначе ОПДЕНИД1 = (ИТ.Субконто(1).Наименование+" "+ИТ.Операция.Документ.Вид()+" "+ИТ.Операция.Документ.НомерДок+" "+ИТ.Операция.Документ.ДатаДок); КонецЕсли; КонецЦикла; |
|||
13
nacinayu1c
16.08.11
✎
17:18
|
в этом случае я в ОПДЕНИД1 получаю приход
|
|||
14
zak555
16.08.11
✎
17:20
|
зачем проверять вид дока ?
нужно смотреть ДО по 41.1 (!) |
|||
15
nacinayu1c
16.08.11
✎
17:20
|
почему по 41.1?
|
|||
16
Drac0
16.08.11
✎
17:21
|
(14)Он же вроде из Белоруссии. Не знаю их план счетов, но может там не через 41.
|
|||
17
nacinayu1c
16.08.11
✎
17:23
|
в графе нужно указать вид документа его номер и дату
|
|||
18
Сияющий Асинхраль
16.08.11
✎
17:23
|
Ты сначала исправь уже отмеченные глупости, а потом уже и остальное править будем. Я тебе уже говорил как-то, если копипастешь, то вычищай полученный код, без этого у тебя такая фигня получается, что смотреть тошно... Одно вот это:
Если ИТ.ДО("К")<>0 Тогда Если ИТ.ДО("С")<>0 Тогда Если ИТ.ДО("К")<>"" Тогда Если ИТ.ДО("С")<>"" Тогда ПИЦена1 = Окр(ИТ.ДО("С") / ИТ.ДО("К")); Иначе ПИЦена1 = 0; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; Чего стоит |
|||
19
nacinayu1c
16.08.11
✎
17:26
|
странно но вид постоянно равен "ПоступлениеТоваров"
|
|||
20
zak555
16.08.11
✎
17:28
|
(16) ну так там они в любом случае Активы
т.е. можно всё увидеть |
|||
21
nacinayu1c
16.08.11
✎
17:30
|
вот исправил только помагите
|
|||
22
nacinayu1c
16.08.11
✎
17:31
|
Если (Табл1 = 1) или (Табл1 = 12) или (Табл1 = 13) или (Табл1 = 14) Тогда
Табл_1 = СоздатьОбъект("Таблица"); Табл_1.ИсходнаяТаблица("1Квартал"); Табл_1.ПараметрыСтраницы(2,90); Табл_1.ВывестиСекцию("Шапка"); //Получим бух итоги со счета по коду "004.3" ИТ = СоздатьОбъект("БухгалтерскиеИтоги"); ИТ.ИспользоватьСубконто(ВидыСубконто.Контрагенты); ИТ.ИспользоватьСубконто(ВидыСубконто.Номенклатура); ИТ.ПериодКВ(1,ГодОтчета); ИТ.ВыполнитьЗапрос(ИТ.НачПериода(),ИТ.КонПериода(), "004.3",,,,"Проводка"); ИТ.ВыбратьСубконто(1); Пока ИТ.ПолучитьСубконто(1) = 1 Цикл ИТ.ВыбратьСубконто(2); Пока ИТ.ПолучитьСубконто(2) = 1 Цикл ОстКолВо = ИТ.СКД("К"); остСтоимость = ИТ.СКД("С"); //1Квартал оНДПИ1 = "-"; оСумма1 = "-"; рРасходы1 = "-"; рНДПИ1 = "-"; рСуммаД1 = 0; рКолВо1 = 0; ИТоСумма2 = 0; СуммаРасс =0; //Получим данные 1вого квартала и выведем их на секцию "строка" //объщие колонки (Поставщик товара, документ, его номер и дата),(наименование, вид (сорт, артикул) товара); ////наименование, вид (сорт, артикул) товара НВСАТ1 = ИТ.Субконто(2); ////Остаток нереализованного товара ////Кол-во ОНТКолВо1 = ИТ.СНД("К"); ////стоимость(руб.) ОНТСтоимость1 = ИТ.СНД("С"); ////поступило (изготовлено) ////Цена ПИЦена1 = Окр(ИТ.ДО("С") / ИТ.ДО("К")); ////Кол-во ПИКолВо1 =ИТ.ДО("К"); ////стоимость(руб.) ПИСтоимость1 = ИТ.ДО("С"); ////Оплачено //не заполняется ИТ.ВыбратьПериоды(); Пока Ит.ПолучитьПериод() = 1 Цикл //Поставщик товара, документ, его номер и дата Если (ИТ.Операция.Документ.Вид() <> "ПоступлениеТоваров") и (ИТ.Операция.Документ.Вид() <> "ПоступлениеТоваровВРозницу") Тогда Продолжить; Иначе ПТЕНИД1 = (ИТ.Операция.Дебет.Контрагенты.Наименование+" "+ИТ.Операция.Документ.Вид()+" "+ИТ.Операция.Документ.НомерДок+" "+Ит.Операция.Документ.ДатаДок); КонецЕсли; ////отгружено ////покупатель, документ, его номер и дата Если (ИТ.Операция.Документ.Вид() <> "РасходТовара") и (ИТ.Операция.Документ.Вид() <> "РасходТовараРозница") Тогда Продолжить; Иначе ОПДЕНИД1 = (ИТ.Операция.Кредит.Контрагенты.Наименование+" "+ИТ.Операция.Документ.Вид()+" "+ИТ.Операция.Документ.НомерДок+" "+ИТ.Операция.Документ.ДатаДок); КонецЕсли; КонецЦикла; ////Кол-во оКолВо1 = ИТ.КО("К"); ////стоимость по отпускным ценам (руб.) оСПОЦ1 = ИТ.КО("С"); Спр = СоздатьОбъект("Справочник.Договоры"); Спр.ИспользоватьВладельца(ИТ.Субконто(1).Наименование); спр.ВыбратьЭлементы(); Проц = Спр.ПроцентКомиссии; ////реализовано ////номер, дата платежной инструкции //рНДПИ1 =; ////Сумма дохода (руб.) рСуммаД1 = ИТ.КО("С") * Проц/100; ////Кол-во рКолВо1 = ИТ.КО("К"); //Иначе //ОПДЕНИД1 = "-"; // оКолВо1 = "-"; // оСПОЦ1 = "-"; //КонецЕсли; СуммРуб = 0; СуммРуб = рСуммаД1 + СуммРуб; Табл_1.ВывестиСекцию("Строка"); КонецЦикла; КонецЦикла; Табл_1.ВывестиСекцию("Итого1"); Табл_1.Показать("1 Квартал"); КонецЕсли; |
|||
23
zak555
16.08.11
✎
17:31
|
срочно увольняться
|
|||
24
nacinayu1c
16.08.11
✎
17:31
|
теперь ОПДЕНИД1 просто пустой
|
|||
25
nacinayu1c
16.08.11
✎
17:32
|
я не работаю
|
|||
26
zak555
16.08.11
✎
17:33
|
я тоже
|
|||
27
nacinayu1c
16.08.11
✎
17:34
|
:))
|
|||
28
nacinayu1c
16.08.11
✎
17:34
|
ну что поможете?
|
|||
29
zak555
16.08.11
✎
17:35
|
мне нужно : рассписать проводки двух документов
|
|||
30
Сияющий Асинхраль
16.08.11
✎
17:35
|
А что ты хотел, ты сам отсекаешь все документы, кроме приходов:
Если (ИТ.Операция.Документ.Вид() <> "ПоступлениеТоваров") и (ИТ.Операция.Документ.Вид() <> "ПоступлениеТоваровВРозницу") Тогда Продолжить; Иначе |
|||
31
nacinayu1c
16.08.11
✎
17:38
|
в таком случае как мне получить для ПТЕНИД1 вид номер и дату приход
а для оПТЕНИД1 расход?? |
|||
32
zak555
16.08.11
✎
17:39
|
(31) запрос по операциям смотреть только оборот
|
|||
33
Сияющий Асинхраль
16.08.11
✎
17:39
|
Очевидно сравнивать на равенство:
ИТ.Операция.Документ.Вид() = "ПоступлениеТоваров" |
|||
34
Сияющий Асинхраль
16.08.11
✎
17:41
|
Если Ит.ДО() <> 0 Тогда
ПТЕНИД1 = (ИТ.Операция.Дебет.Контрагенты.Наименование+" "+ИТ.Операция.Документ.Вид()+" "+ИТ.Операция.Документ.НомерДок+" "+Ит.Операция.Документ.ДатаДок); ИначеЕсли Ит.КО() <> 0 Тогда ОПДЕНИД1 = (ИТ.Операция.Кредит.Контрагенты.Наименование+" "+ИТ.Операция.Документ.Вид()+" "+ИТ.Операция.Документ.НомерДок+" "+ИТ.Операция.Документ.ДатаДок); КонецЕсли; |
|||
35
zak555
16.08.11
✎
17:52
|
то за изврат с договорами ?
|
|||
36
nacinayu1c
16.08.11
✎
17:54
|
Если Ит.ДО() <> 0 Тогда
ПТЕНИД1 = (ИТ.Операция.Дебет.Контрагенты.Наименование+" "+ИТ.Операция.Документ.Вид()+" "+ИТ.Операция.Документ.НомерДок+" "+Ит.Операция.Документ.ДатаДок); ИначеЕсли Ит.КО() <> 0 Тогда ОПДЕНИД1 = (ИТ.Операция.Кредит.Контрагенты.Наименование+" "+ИТ.Операция.Документ.Вид()+" "+ИТ.Операция.Документ.НомерДок+" "+ИТ.Операция.Документ.ДатаДок); КонецЕсли; при этом получил расход но контрагент ИТ.Операция.Кредит.Контрагенты.Наименование почемуто тот же что и в дебете да и если Ит.КО() <> 0 то всеравно поподает запись верхней строки |
|||
37
Сияющий Асинхраль
16.08.11
✎
17:57
|
Ну так обнули их перед этим если, свои мозги надо хоть иногда включать:
ПТЕНИД1 = ""; ОПДЕНИД1 = ""; |
|||
38
nacinayu1c
16.08.11
✎
18:03
|
спасибо всео огромное
|
|||
39
nacinayu1c
16.08.11
✎
18:03
|
все ок
|
|||
40
zak555
16.08.11
✎
18:04
|
(39) тебе кажется
|
|||
41
Сияющий Асинхраль
16.08.11
✎
18:06
|
Вот здесь:
ПИЦена1 = Окр(ИТ.ДО("С") / ИТ.ДО("К")); Надо таки проверять на равенство нулю ИТ.ДО("К"), но только один раз, и только нулю, а не пустому значению... |
|||
42
Сияющий Асинхраль
16.08.11
✎
18:09
|
Но (40) прав, даже в таком варианте фигня какая-то
|
|||
43
nacinayu1c
16.08.11
✎
18:09
|
(41) понял уже по (37) и по ошибке "деление на ноль"
|
|||
44
nacinayu1c
17.08.11
✎
11:10
|
Табл_1.ПараметрыСтраницы(2,90);
это может как нибудь влеять на предварительный просмотр дло в том что после того как запрос сформирован нажимаю предварительный просмотр и не чего после нажимаю ФАЙЛ , параметры страницы выподает окно с настройками параметров потом жму просто отмена после жму просмотр все ок |
|||
45
nacinayu1c
17.08.11
✎
11:11
|
в других отчетах все работает на ура
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |