Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 01:39
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите с запросом!Нужна помощь...  (Прочитано 1801 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С
Всем Здравствуйте! В справочнике есть несколько позиций номенклатуры.Например Шкаф Код 001, Диван Код 002, Стол Код 003.Имеется документ Расходная накладная. Как сравнить ПО КОДУ, что бы определить какие из этих товаров продавались?что писать в запросе?



Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С
тема закрыта!всё получилось.

Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
А как получилось. Напишите

Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С
А как получилось. Напишите
Процедура Сформировать() 
   Список = СоздатьОбъект("СписокЗначений");   
   Спр = СоздатьОбъект("Справочник.Номенклатура");
   Спр.ВыбратьЭлементы();
   Пока Спр.ПолучитьЭлемент() = 1 Цикл         
   Если (Спр.ТекущийЭлемент().Код = "4621483") ИЛИ (Спр.ТекущийЭлемент().Код = "000002128") ИЛИ (Спр.ТекущийЭлемент().Код = "000002113") Тогда 
   Список.ДобавитьЗначение(Спр.ТекущийЭлемент().Код);   // список с отфильтрованными записями
   КонецЕсли; 
   КонецЦикла;
   Ном=Найти(ВыбФирма.ИНН,"\");
   Если Ном=0 Тогда
      Ном=Найти(ВыбФирма.ИНН,"/");
   КонецЕсли;          
   Если Ном<>0 Тогда
   ИНН=Лев(ВыбФирма.ИНН,10);
   КПП=Прав(ВыбФирма.ИНН,9);
   КонецЕсли;   
   
   // *****************************************************
   
   ДБФ=СоздатьОбъект("XBase");
   дбф.ДобавитьПоле("A",2,20,);
   дбф.ДобавитьПоле("B",2,20,);
   дбф.ДобавитьПоле("C",3,,); 
   дбф.ДобавитьПоле("D",2,15,); 
   дбф.ДобавитьПоле("E",2,15,);
   дбф.ДобавитьПоле("F",2,50,);
   дбф.ДобавитьПоле("G",2,15,);   
   дбф.ДобавитьПоле("H",2,50,); 
   дбф.ДобавитьПоле("I",1,15,0); 
   дбф.ДобавитьПоле("J",1,15,2); 
   дбф.ДобавитьПоле("K",1,15,2);
   
   если фс.СуществуетФайл(Сокрлп(Путь)+"\narzan.dbf")<>0 тогда
      фс.УдалитьФайл(Сокрлп(Путь)+"\narzan.dbf");
   конецесли;   
   ДБФ.СоздатьФайл(Сокрлп(Путь)+"\narzan.dbf",);   
   
   Запрос=СоздатьОбъект("Запрос");
   Текст=   "//{{ЗАПРОС(Продажи)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Док = Документ.РасходнаяНакладная.ТекущийДокумент;
   |Товар = Документ.РасходнаяНакладная.Товар;
   |Количество = Документ.РасходнаяНакладная.Количество;
   |Сумма = Документ.РасходнаяНакладная.Сумма;
   |НДС = Документ.РасходнаяНакладная.НДС;
   |Функция КолП1 = Сумма(Количество);
   |Функция СумП1 = Сумма(Сумма);
   |Группировка Док;
   |Группировка Товар без групп;
   |Условие(Товар.Код В Список);
   |"//}}ЗАПРОС
   ;
   Запрос.Выполнить(Текст);
   Пока Запрос.Группировка(1)=1 Цикл   
      Пока Запрос.Группировка(2)=1 Цикл
         Если ПустоеЗначение(Запрос.Док.Грузоотправитель)=1 Тогда
            Продолжить;
         КонецЕсли;   
         Если ПустоеЗначение(Запрос.Док.Контрагент)=1 Тогда
            Продолжить;
         КонецЕсли;    
         Кол=Запрос.КолП1; 
         Сум=Запрос.СумП1;
         Если Кол=0 Тогда
            Продолжить;
         КонецЕсли;   
         ДБФ.Добавить();     
         ДБФ.УстановитьЗначениеПоля("A",ИНН);   
         ДБФ.УстановитьЗначениеПоля("B",КПП);
         ДБФ.УстановитьЗначениеПоля("C",Запрос.Док.ДатаДок);     
         ДБФ.УстановитьЗначениеПоля("D",Сокрлп(Запрос.Док.НомерДок));
         ДБФ.УстановитьЗначениеПоля("E",Строка(Запрос.Док.Грузоотправитель.Код)); 
         ДБФ.УстановитьЗначениеПоля("F",Сокрлп(Запрос.Док.Контрагент.полнНаименование));   
         ДБФ.УстановитьЗначениеПоля("G",Сокрлп(Запрос.Товар.Код));     
         ДБФ.УстановитьЗначениеПоля("H",Сокрлп(Запрос.Товар.Наименование));   
         ДБФ.УстановитьЗначениеПоля("I",Кол);   
         ДБФ.УстановитьЗначениеПоля("J",Сум/Кол);
         ДБФ.УстановитьЗначениеПоля("K",Сум); 
         
         ДБФ.Записать();   
      КонецЦикла;
   КонецЦикла;           
   ДБФ.ЗакрытьФайл();
   
   //
КонецПроцедуры
Процедура ПриНачалеВыбораЗначения(Элем,Флаг)
   Если Элем="Путь" Тогда
      Флаг=0;
      ФС.ВыбратьКаталог(Путь,"Выберите каталог файла",60);
   КонецЕсли;   
КонецПроцедуры    


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
142 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
AIFrame
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 140
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal