|   |   | 
| 
 | 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 | 
        в других отчетах все работает на ура     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |