|
v7: Признак, что сотрудник уже был выгружен в Эксель | ☑ | ||
---|---|---|---|---|
0
листопад
12.05.14
✎
22:44
|
Данные по сотруднику выгружаются в Эксель (только из спр.Сотрудники). В спр.Сотрудники добавлен реквизит - флаг "Признак". В процедуре ПриЗаписи(), он устанавливается равным 1, т.е. при любом изменении в спр.Сотрудники Признак=1.
Как предусмотреть обнуление этого Признака, если сотрудник уже был выгружен в Эксель? Подскажите идею. Т.е. задача состоит в том, чтобы при последующей выгрузке сотрудников в Эксель, выгружались не все сотрудники, а только у кого были какие-то изменения в спр.Сотрудники (для этого ПриЗаписи() ставим Пизнак=1). А вот как теперь реализовать обнуление этого Признака? |
|||
1
Волшебник
модератор
12.05.14
✎
22:48
|
заведи план обмена
|
|||
2
Фокусник
12.05.14
✎
22:48
|
(0) при очередной выгрузке элемента присвоить реквизиту 0 и записать в базу.
А что есть выгрузка в Эксель? |
|||
3
miki
12.05.14
✎
22:48
|
спр.Сотрудники.Признак=0;
спр.Сотрудники.Записать(); (с)кэп |
|||
4
фобка
12.05.14
✎
22:50
|
(1) в семерке нет) здесь очень простой и странный вопрос и не менее странный ответ: чтобы при выгрузке обнулить признак элемента его надо тупо обнулить
|
|||
5
Мигало
12.05.14
✎
22:50
|
ВыгрузитьСотрудникаВXLS();
спр.Сотрудники.Признак=0; спр.Сотрудники.Записать(); (с) дважды кэп |
|||
6
spectre1978
12.05.14
✎
22:50
|
(1) на семерке?
|
|||
7
листопад
12.05.14
✎
22:51
|
(3) Наоборот, ПриЗаписи():
спр.Сотрудники.Признак=1; спр.Сотрудники.Записать(); Признак установлен в 1. Выгружаем в Эксель сотрудника. А как теперь этот признак поставить в ноль? |
|||
8
фобка
12.05.14
✎
22:51
|
А у него признак при записи ставится - ну тогда используй локальную переменную которую ты будешь заполнять только при открытии и условие на нее при записи
|
|||
9
miki
12.05.14
✎
22:53
|
(7)В ПриЗаписи() нет нужды обращаться к реквизиту через объект, достаточно просто выставить значение в 1.
Покажи код выгрузки в эксель. |
|||
10
miki
12.05.14
✎
22:55
|
(8)имхо, ты был прав как раз в (4).
|
|||
11
spectre1978
12.05.14
✎
22:56
|
(7) так же, как ставили в 1, только вместо 1 ноль.
|
|||
12
листопад
12.05.14
✎
23:00
|
(2), (9) Выгрузка в Эксель:
Процедура ВыгрузитьСотрудников() Попытка x=СоздатьОбъект("Excel.Application"); Исключение Сообщить(ОписаниеОшибки(),"!!!"); Сообщить("Возможно, MS Excel не установлен на этом компьютере."); Возврат; КонецПопытки; x.Workbooks.Add(); //книга x.WorkSheets(1).Cells(1,1).Value="TAB_NOMER"; x.WorkSheets(1).Cells(1,2).Value="FIO"; x.Worksheets(1).Cells(1,3).Value="ROZHD_DATA"; x.WorkSheets(1).Cells(1,4).Value="POL"; x.WorkSheets(1).Cells(1,7).Value="INN"; x.WorkSheets(1).Cells(1,8).Value="PFR"; x.WorkSheets(1).Cells(1,9).Value="LIC_SCHET"; x.Worksheets(1).Name = ИмяФайла; Сотрудники = СоздатьОбъект("Справочник.Сотрудники"); Сотрудники.ВыбратьЭлементы(1); ИтераторСотр = 1; Пока Сотрудники.ПолучитьЭлемент() = 1 Цикл Если Сотрудники.ЭтоГруппа() + Сотрудники.ПометкаУдаления() <> 0 тогда Продолжить; КонецЕсли; ИтераторСотр = ИтераторСотр + 1; x.WorkSheets(ИмяФайла).Cells(ИтераторСотр,1).Value = "'"+Сотрудники.Код; x.WorkSheets(ИмяФайла).Cells(ИтераторСотр,2).Value = "'"+Сотрудники.Наименование; x.WorkSheets(ИмяФайла).Cells(ИтераторСотр,3).Value = "'"+Формат(Сотрудники.ДатаРождения,"ДФ=dd.MM.yyyy"); x.WorkSheets(ИмяФайла).Cells(ИтераторСотр,4).Value = "'"+Сотрудники.Пол; x.WorkSheets(ИмяФайла).Cells(ИтераторСотр,7).Value = "'"+Сотрудники.ИНН; x.WorkSheets(ИмяФайла).Cells(ИтераторСотр,8).Value = "'"+Сотрудники.СтраховойНомерПФР; x.WorkSheets(ИмяФайла).Cells(ИтераторСотр,9).Value = "'"+Сотрудники.НомерЗарплатногоСчета; КонецЦикла; x.Quit(); Сообщить("Выгрузка завершена", "!"); КонецПроцедуры |
|||
13
Фокусник
12.05.14
✎
23:00
|
(7) "Выгружаем в Эксель сотрудника"
Что имеется ввиду под выгрузкой, конкретно? |
|||
14
Фокусник
12.05.14
✎
23:02
|
(12) перед КонецЦикла нужно добавить:
Сотрудники.Признак = 0; Сотрудники.Записать(); |
|||
15
фобка
12.05.14
✎
23:02
|
(9) ну да единичка только модуле формы ставится, призаписи() ее процедура. Давно клюшки не щупал
|
|||
16
miki
12.05.14
✎
23:05
|
(14)именно так, только автору не поможет, всё равно проверки на Признак=1 в его коде нет.
|
|||
17
фобка
12.05.14
✎
23:06
|
(16) а это уже будет следующим вопросом))
|
|||
18
листопад
12.05.14
✎
23:07
|
(16) Это я допишу ))) Надеюсь )))
|
|||
19
КонецЦикла
12.05.14
✎
23:22
|
УРБД есть?
|
|||
20
Torquader
13.05.14
✎
20:35
|
Я бы на вашем месте просто заглянул в файл Excel, чтобы увидеть - есть ли там сотрудник или нет, так как всё равно есть вероятность, что его оттуда удалят.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |