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

Автор Тема: обработка по выгрузке иностранцев 1с77_ЗиК  (Прочитано 982 раз)

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

Оффлайн Дмитрий1991

  • *
  • Сообщений: 27
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-12-04
  • Сайт: 
  • Профессия: Программист 8.1
Здравствуйте стоит задача состряпать отчёт по иностранцам ну что то у меня с запросами не получается вот сделал такую штуку но он берёт по одному сотруднику из каждой страны если же я группирую по фиоСотрудника то выводит вообще всех почему он забивает на условия в запросе, если что то корява написал я недавно программирую на 1с, код1 и код2 это код россии и пустого значения соответственно в справочнике ОКСМ  зарание спасибо

//*******************************************
Процедура Сформировать()
   
  Перем Запрос,ТекстЗапроса;
   спрОКСМ = СоздатьОбъект("Справочник.ОКСМ");
   
   спрОКСМ.НайтиПоКоду("643");
   код1=спрОКСМ.Наименование;
   сообщить("код1");
   сообщить(код1); 
   
   спрОКСМ.НайтиПоКоду("892");
   код2=спрОКСМ.Наименование;
   сообщить("код2");
   сообщить(код2);
   
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(1)
   |фиоСотрудника=Справочник.Сотрудники.Наименование;
   |кодСотрудника=Справочник.Сотрудники.код;
      |иннСотрудника=Справочник.Сотрудники.ИНН;
      |снилс=Справочник.Сотрудники.СтраховойНомерПФР;
      |гражданство=Справочник.Сотрудники.Страна;
      |Группировка гражданство;
      |Условие((гражданство<>код1)или(гражданство<>код2));
   |"//}}ЗАПРОС
   ;

 Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
   Возврат;
 КонецЕсли;
   
 
   // Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");

Состояние("Заполнение выходной таблицы...");
i=0;
Пока Запрос.Группировка(1)=1 Цикл
 i=i+1;
 фиоСотрудника=Запрос.фиоСотрудника;
 иннСотрудника=Запрос.иннСотрудника;
 снилс=Запрос.снилс;
 гражданство=Запрос.гражданство;
 Таб.ВывестиСекцию("Инфа");
КонецЦикла;
 Таб.ТолькоПросмотр(1);
 Таб.Показать("Иностранные граждани", "");   
КонецПроцедуры


Оффлайн Дмитрий1991

  • *
  • Сообщений: 27
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-12-04
  • Сайт: 
  • Профессия: Программист 8.1
плюнул на запрос сделал так всё выводит, а как сейчас сделать чтобы не выводил уволенных(исключить всех кто состоит в группе справочника уволенные)
условие (спрСотрудники.ПринадлежитГруппе(Уволенные)=0) что то не работает

//*******************************************
Процедура Сформировать()
   
  Перем Запрос,ТекстЗапроса;
   Состояние("Заполнение выходной таблицы...");
   спрСотрудники = СоздатьОбъект("Справочник.Сотрудники");
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   спрСотрудники.ВыбратьЭлементы();
   i=0; 
   Пока спрСотрудники.ПолучитьЭлемент() = 1 Цикл
     Если (спрСотрудники.Страна.Наименование<>"Россия")и(спрСотрудники.Страна.Наименование<>"")и(спрСотрудники.ПринадлежитГруппе(Уволенные)=0) Тогда
       i=i+1;
       фиоСотрудника=спрСотрудники.Наименование;
       иннСотрудника=спрСотрудники.ИНН;
       снилс=спрСотрудники.СтраховойНомерПФР;
       гражданство=спрСотрудники.Страна;
       Таб.ВывестиСекцию("Инфа");
     КонецЕсли;
Таб.ТолькоПросмотр(1);
Таб.Показать("Иностранные граждани", "");
КонецЦикла;

Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");

КонецПроцедуры

 
Добавлено: 27 Апр 2015, 10:50

спасибо за внимания сделал так если кому интересно

//*******************************************
Процедура Сформировать()     
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   Таб.ВывестиСекцию("Шапка");
   Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
   
   спрСотрудники = СоздатьОбъект("Справочник.Сотрудники");
   спрСотрудники.ВыбратьЭлементы();
   
   i=0; 
   Пока спрСотрудники.ПолучитьЭлемент() = 1 Цикл
     Если (спрСотрудники.Страна.Наименование<>"Россия")и(спрСотрудники.Страна.Наименование<>"")и(спрСотрудники.Родитель.Наименование<>"Уволенные") Тогда
       i=i+1;
       фиоСотрудника=спрСотрудники.Наименование;
       иннСотрудника=спрСотрудники.ИНН;
       снилс=спрСотрудники.СтраховойНомерПФР;
       гражданство=спрСотрудники.Страна;
       Таб.ВывестиСекцию("Инфа");
      Состояниезапроса="Заполнение выходной таблицы...";
     КонецЕсли;                                         

Таб.ТолькоПросмотр(1);
Таб.Показать("Иностранные граждани", "");
КонецЦикла;

КонецПроцедуры
               
Добавлено: 27 Апр 2015, 10:53

Только не пойму как сделать что бы таблица появлялась после обработки, а не обновлялась во время её выполнения 
Добавлено: 27 Апр 2015, 11:19

Тема закрыта

Последний раз редактировалось: Дмитрий1991; 27 Апр 2015, 11:19. Причина: Объединение сообщений


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
171 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
38 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 223
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal