7.7 Не выходит

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Archivar, 18 янв 2014.

  1. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    Я уже писал про это. Но повторюсь, т.к. все еще не вышло сделать:
    1) что бы отчет выводил те товары - количество которых равно нулю или как выложено ниже во внешнем отчете меньше 1. Он выводит: например если поставить условие меньше 10, то выведет все и вся, но только не те что равно нулю, кроме некоторых исключений.
    2) Пытался так же, чтобы выводил и инфу по приходам: откуда последний раз пришел товар, когда и по какой цене, Но он никак не хочет выводить((((


    Прошу помочь. Заранее Спасибо.


    http://files.mail.ru/9CD89F6FF3214D94BDF63D3A54C81382
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1) Нулевое значение вы через БИ не получите, разве что начальная дата будет от последнего списания ТМЦ. или тупо перебор всех элементов справочника не вошедших в запрос...
    2) Для получения последнего поставщика/цены можно использовать ОбратныйПорядок в выборке документов.
  3. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    1)а как в идеале то должно выглядить это? если не через БИ?


    Если перебор то, хотелось бы чтобы Допустим она выводила значение меньше 10.
    Я так понял цикл что уже есть, он оставется, туда надо добавить еще условия....

    Код:
    Ит=СоздатьОбъект("БухгалтерскиеИтоги");
    Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура);
    Ит.ВыполнитьЗапрос(,РабочаяДата(),"41",);  
    Т=СоздатьОбъект("Таблица");
    Т.ИсходнаяТаблица("Табл1");
    Т.ВывестиСекцию("Шапка");
    Ит.ВыбратьСубконто();
    Ном=0; Всего=0;
    Пока Ит.ПолучитьСубконто()=1 Цикл
    если (10>Ит.СКД("К"))или(10>Ит.СКД()) Тогда
    Если //Как тут увязать? как тут перебор сделать? Да так чтобы она не вписала значения что чисто больше 10.	
    
    
    
    Ном=Ном+1;
    Т.ВывестиСекцию("Строка");
    КонецЕсли;
    КонецЦикла; 


    2) он у меня даже в обычном почему то не выводит...((( я думал увязать с журналом проводок...но не получилось, т.к. я просто немогу понять как оттуда значения забирать...

    а ОбратныйПорядок это Пока Запрос.Группировка(1,-1)=1 Цикл типа того:=??
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1) Вот так
    Код:
     Ит=СоздатьОбъект("БухгалтерскиеИтоги");
    Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура);
    Ит.ВыполнитьЗапрос(,РабочаяДата(),"41",,, 1,, "К");  
    Т=СоздатьОбъект("Таблица");
    Т.ИсходнаяТаблица("Табл1");
    Т.ВывестиСекцию("Шапка");
    Ит.ВыбратьСубконто(ВидыСубконто.Номенклатура); //!!!!!!!!!
    Ном=0; Всего=0;
    Пока Ит.ПолучитьСубконто()=1 Цикл
    если (10<Ит.СКД("К")) Тогда //выводим с остатком МЕНЬШЕ 10																											
    Ном=Ном+1;
    Т.ВывестиСекцию("Строка");
    КонецЕсли;
    КонецЦикла;
    
    То что вывели запоминаем скажем в СписокЗначений. Потом нужен запрос/перебор в цикле по справочнику ТМЦ. Все что не в списке значений и не является группой - ноль


    2) Нет
    Код:
    Док.ОбратныйПорядок(1);
    Док.ВыбратьДокументы(НачДата,КонДата);
  5. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26



    Код:
    Перем Ит,Д, Дата1,Дата2,НачДата, КонДата;
    Процедура Сформировать()
    Ит=СоздатьОбъект("БухгалтерскиеИтоги");
    Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура);
    Ит.ВыполнитьЗапрос(,РабочаяДата(),"41",,, 1,, "К"); 
    Т=СоздатьОбъект("Таблица");
    Т.ИсходнаяТаблица("Табл1");
    Т.ВывестиСекцию("Шапка");
    Ит.ВыбратьСубконто(ВидыСубконто.Номенклатура);
    Ном=0; Всего=0;
    Пока Ит.ПолучитьСубконто()=1 Цикл
    если (10>Ит.СКД("К")) Тогда   // С этим знаком выводит меньше 10ти.						  
    Ном=Ном+1;
    Т.ВывестиСекцию("Строка");
    КонецЕсли;
    КонецЦикла;	   
    //******************************************** 
    
    ТоЧтоВывели=СоздатьОбъект("СписокЗначений");
    ТоЧтоВывели.ДобавитьЗначение(Номенклатура); // как правильно написать чтобы значения добавляла??   
    СпрТМЦ=СоздатьОбъект("Справочник.Номенклатура");
    СпрТМЦ.ВыбратьЭлементы();
    Пока СпрТМЦ.ПолучитьЭлемент()=1 Цикл
    Если (СпрТМЦ.//хз что тут =0)И(СпрТМЦ.ЭтоГруппа()=1) Тогда
    
    
    
    
    КонецЕсли;
    КонецЦикла;
    //Чувствую что бред какойто у меня получается(((
    
    //**************************************	  
    
    
    
    Д=СоздатьОбъект("Документ");
    Д.УстановитьФильтр(1,0,0,0,0,1);
    Д.ОбратныйПорядок(1);
    Д.ВыбратьДокументы(НачДата,КонДата);
    НачДата=дата1; КонДата=Дата2;    // Можно ли так?  //все-равно не выводит(((
    пока Д.ПолучитьДокумент()=1 цикл 
    
    Если (Д.Вид()="ПоступлениеТМЦ") тогда
    Если Ит.ПредставлениеСубконто()=Д.ТМЦ Тогда 
    КонтрагентК=Д.ТМЦ.Контр;
    ДатаК=Д.ТМЦ.ДатаДок;
    ЦенаК=Д.ТМЦ.Цена; 
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    
    
    
    //**************************************
    
    Ит=0;
    Т.ТолькоПросмотр(1);
    Т.Опции(0,0,2,6,"Табл1","Табл1");
    Т.ПовторятьПриПечатиСтроки(3,3);
    Т.Показать();
    КонецПроцедуры	 



    Я со списком значений еще не работал(
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
     //1
    СЗ=СоздатьОбъект("СписокЗначений");
    //2
    Ит=СоздатьОбъект("БухгалтерскиеИтоги");
    Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура);
    Ит.ВыполнитьЗапрос(,РабочаяДата(),"41",,, 1,, "К");  
    Т=СоздатьОбъект("Таблица");
    Т.ИсходнаяТаблица("Табл1");
    Т.ВывестиСекцию("Шапка");
    Ит.ВыбратьСубконто(ВидыСубконто.Номенклатура); //!!!!!!!!!
    Ном=0; Всего=0;
    Пока Ит.ПолучитьСубконто()=1 Цикл
    //1
    СЗ.ДобавитьЗначение(Ит.Субконто());
    //2
    если (10<Ит.СКД("К")) Тогда //выводим с остатком МЕНЬШЕ 10																											
    Ном=Ном+1;
    Т.ВывестиСекцию("Строка");
    КонецЕсли;
    КонецЦикла;
    
    Спр=СоздатьОбъект("Справочник.Номенклатура");		  
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент()=1 Цикл
    Если Спр.ЭтоГруппа()+СЗ.Принадлежит(Спр.ТекущийЭлемент())+Спр.ПометкаУдаления()<>0 Тогда
    Продолжить;
    КонецЕсли;
    Т.ВывестиСекцию("Строка1");
    КонецЦикла;
    
    
    Обратите внимание, что выводим секцию Строка1, а не Строка. Ибо это уже не БИ... Допишите сами.
  7. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    ммм я не много не догнал(

    1)Секция Строка - вообще не нужна? тогда ее можно вообще убрать из модуля? да и как теперь то если БИ нет. в строке1 мне поля в табличной части называть?

    2)Потом не очень понял: Если Спр.ЭтоГруппа()+СЗ.Принадлежит(Спр.ТекущийЭлемент())+Спр.ПометкаУдаления()<>0 Тогда -это как так СЗ.Принадлежит(Спр.ТекущийЭлемент())<>0??? там же отличные от нуля

    3)Вы наверное не заметили:

    Код:
    Д=СоздатьОбъект("Документ");
    Д.УстановитьФильтр(1,0,0,0,0,1);
    Д.ОбратныйПорядок(1);
    Д.ВыбратьДокументы(НачДата,КонДата);
    НачДата=дата1; КонДата=Дата2;    // Можно ли так?  //все-равно не выводит(((
    пока Д.ПолучитьДокумент()=1 цикл
    
    Если (Д.Вид()="ПоступлениеТМЦ") тогда
    Если Ит.ПредставлениеСубконто()=Д.ТМЦ Тогда
    КонтрагентК=Д.ТМЦ.Контр;
    ДатаК=Д.ТМЦ.ДатаДок;
    ЦенаК=Д.ТМЦ.Цена;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    Так можно?
    И мб сдесь еще чтото не так? она не выводит все-равно



    И последнее- а что дописывать то?
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Я вам скинул рабочий код. Секцию Строка1 нужно добавить в макет по аналогии Строка. Только ссылки на объект замените.
  9. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    http://files.mail.ru/83EE7E03D5F34ABAAA54BF3D34F8F3E6
    Посмотрите плз что получилось.
    У меня цена и количество не выводит(
    и не выводит фирму откуда пришло
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
  11. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    Код:
    Процедура Инфо(ТМЦ, КонтрагентК,ДатаК,ЦенаК)
    КонтрагентК="";
    ДатаК="";
    ЦенаК="";
    Д=СоздатьОбъект("Документ.ПоступлениеТМЦ");
    Д.ОбратныйПорядок(1);
    Д.ВыбратьДокументы(,РабочаяДата());
    пока Д.ПолучитьДокумент()=1 цикл 
    Д.ВыбратьСтроки();
    Пока Д.ПолучитьСтроку()=1 Цикл
    Если Д.Товар=ТМЦ Тогда 
    КонтрагентК=Д.Контрагент;
    ДатаК=Д.ДатаДок;
    ЦенаК=Д.Цена; 
    Возврат;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    
    КонецПроцедуры
    Вы вроде говорили цикл в цикле нельзя делать? или когдато можно? и вопросик: Д.Товар - поступление тмц? прост у меня такого нет
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Нельзя... Точнее КРАЙНЕ НЕ ЖЕЛАТЕЛЬНО. Но если я вам сейчас начну объяснять про заполнение ЕДИНОЙ таблицы значений по всем элементам ТМЦ... Как раз думаю к майским праздникам закончим.

    Д.Товар, а может быть Д.Номенклатура.. Нет под рукой вашей конфы. Короче, это реквизит из табличной части поступления
  13. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    а зачем в табличной части сразу обе секции?(т.е. Строка и Строка1)
    у меня уже минуты 4 ре обработка идет
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Две, потому что в одной выводятся БИ (те что больше нуля), а во второй - равные нулю...
    Долго считает - это как раз из-за цикла в цикле....... У вас какой ориентировочный размер номенклатурного перечня?
  15. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    в этом пробнике незнаю......думаю гдето 5 000-10 000

    если она будет работать, то как Вы могли наблюдать я в диалоге реквизит создал, такой же реквизит у каждого товара будет, если они равны то товар выбирается в отчет.
  16. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Ну тогда час считать будет)))))))
    Вам так обязательно знать цену/дату последнего поступления?
  17. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    если час то наверное тогда нет, прост очень удобно это.

    Мб их убрать.... А контрагента то можно оставить? Так быстрее будет?
  18. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    нет... не быстрее.
    Если так важно - можно в виде отдельного отчета сделать поиск последней цены/контрагента
  19. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    Поиск Мы осуществляем через журнал проводок....Сами понимаете это муторно...
    Предполагалось свести всё "рукоблудие" (сори за словечко) к минимуму.

    а Вот у меня два списка, их можно как то объединить по Алфавиту? и нумерацию общюю? или как нарисовали в табличной части так тому и быть?
  20. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Можно... Через таблицуЗначений... + Можно ускорить заполнение по контрагенту/цене... Ибо там уже не на каждую позицию будет, а в целом, по документу заполнение. Не действующие элементы можно пометить на удаление. Будет формировать пару минут.....

Поделиться этой страницей