Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RusFAQ.ru: 1С для программиста


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / 1С для программиста

Выпуск № 367
от 05.12.2006, 16:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 311, Экспертов: 41
В номере:Вопросов: 2, Ответов: 8


Вопрос № 64838: Здравствуйте! В отчете (см.приложение) сообщается, что у такого-то сотрудника день рождения. А как можно по-другому это описать? Какие у вас варианты есть? И можно ли как-то описать дату без года. И отсюда я хочу, чтобы каждый день можно было просмот...
Вопрос № 64898: Добрый день уважаемые знатоки.Буду очень благодарен вам если вы поделитесь своим опытом создания архивных копий баз 1с.Дело в том что баз очень много - около 30, и все делать вручную долго и нудно. Обычным Winrarом - так же довольно долго, и архи...

Вопрос № 64.838
Здравствуйте! В отчете (см.приложение) сообщается, что у такого-то сотрудника день рождения. А как можно по-другому это описать? Какие у вас варианты есть? И можно ли как-то описать дату без года. И отсюда я хочу, чтобы каждый день можно было просмотреть, что через n-дней у сотрудника день рождения. Подскажите кто может пожалуйста, очень интересно.

Приложение:

Отправлен: 29.11.2006, 22:52
Вопрос задал: Darina (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Полозов Олег aka Asher
Здравствуйте, Darina!
Вот модуль обработки, в принципе можно переделать на ваше усмотрение чтобы выполнялось при запуске системы
№1 Это просто по дням рождения:

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Наименование = Справочник.Сотрудники.Наименование;
|ДатаРождения = Справочник.Сотрудники.ФизЛицо.ДатаРождения;
|Группировка Наименование;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

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

Пока Запрос.Группировка(1) = 1 Цикл
Год = ДатаГод(Запрос.ДатаРождения);
Месяц = ДатаМесяц(Запрос.ДатаРождения);
День = ДатаЧисло(Запрос.ДатаРождения);

ТекГод = ДатаГод(РабочаяДата());
ТекМесяц = ДатаМесяц(РабочаяДата());
ТекДень = ДатаЧисло(РабочаяДата());
Если (День = ТекДень) и (Месяц = ТекМесяц) Тогда
Возраст = ТекГод - Год;
// Заполнение полей Наименование
Таб.ВывестиСекцию("Наименование");
КонецЕсли
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры

№2 вариант с предупреждением за три дня

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Наименование = Справочник.Сотрудники.Наименование;
|ДатаРождения = Справочник.Сотрудники.ФизЛицо.ДатаРождения;
|Группировка Наименование;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

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

Пока Запрос.Группировка(1) = 1 Цикл
Год = ДатаГод(Запрос.ДатаРождения);
Месяц = ДатаМесяц(Запрос.ДатаРождения);
День = ДатаЧисло(Запрос.ДатаРождения);

ТекГод = ДатаГод(РабочаяДата());
ТекМесяц = ДатаМесяц(РабочаяДата());
ТекДень = ДатаЧисло(РабочаяДата());
Если ((День < ТекДень) и (День > ТекДень - 4)и (Месяц = ТекМесяц) Тогда
Если ТекДень - День = 0 Тогда
Когда = "Сегодня!!!";
Иначе
КолВоДней = ТекДень - День;
Когда = "Через" + КолВоДней + "дн.";
КонецЕсли;
Возраст = ТекГод - Год;
// Заполнение полей Наименование
Таб.ВывестиСекцию("Наименование");
КонецЕсли
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры

Ответ отправил: Полозов Олег aka Asher (статус: 2-ой класс)
Ответ отправлен: 30.11.2006, 04:26
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Только во 2-ом отчете не показывается, что у работника сегодня! день рождения, а если было вчера и отчет сделать сегодня, то будет написано чз 1 д. Но направление понятно, доделаю.

Отвечает: Elric
Здравствуйте, Darina!

В варианте от Полозов Олег aka Asher строчка
Если ((День < ТекДень) и (День > ТекДень - 4)и (Месяц = ТекМесяц) Тогда
не сработает если день рождения в первых числах месяца
Лучше при проверке приводить даты к одному году и просто вычитать одну из другой -- получим количество дней.

ДатДР=Дата(Лев(Сотр.ДатаРождения,6)+Сред(ТекущаяДата(),7)); // Вычислили дату дня рождения в ТЕКУЩЕМ году
КвоДнейДоДР=ТекущаяДата()-ДатДР;
---------
Мирный атом в КАЖДЫЙ дом!
Ответ отправил: Elric (статус: Практикант)
Ответ отправлен: 30.11.2006, 12:20
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Я попробую.


Вопрос № 64.898
Добрый день уважаемые знатоки.Буду очень благодарен вам если вы поделитесь своим опытом создания архивных копий баз 1с.Дело в том что баз очень много - около 30, и все делать вручную долго и нудно.
Обычным Winrarом - так же довольно долго, и архивные копии занимают много места.Есть у меня такая прога - FileStorer.exe.Её отличие в том что она архивирует не всю базу,а только рабочую часть(т.е без папок ExtForms,NEW_STRU и др.ненужных файлов и папок)но к сожалению она оказалась довольно глючной.Может что нибудь посоветуете в этом духе.
Заранее благодарен всем кто откликнется!
Отправлен: 30.11.2006, 09:35
Вопрос задал: Alex81/Alexandr (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: vcv
Здравствуйте, Alex81/Alexandr!
В справке WinRar раздел Режим командной строки.
И нарисовать примерно такой командный файл:

cd azy1CDB1
winrar a -ag . *.dbf *.md *.dd *.cfg *.lst usrdef*.*
cd azy1C1SDDB
winrar a -ag . *.dbf *.md *.dd *.cfg *.lst usrdef*.*
Ответ отправил: vcv (статус: 3-ий класс)
Ответ отправлен: 30.11.2006, 10:00

Отвечает: Strawberry
Здравствуйте, Alex81/Alexandr!
Из своего опыта на текущий момент пользуюсь связкой nncron winrar. первый планировщик второй архиватор. В винраре задаю что архивировать C:WINDOWSsystem32 ar.exe u i:ackupdb d:db*.* -r -m5 -agA -x*.cdx
почему вы решили что винраром долго ??
быстро, просто один раз настроить.
Второй вариант использовать бакап встроенный в виндовс
Ответ отправил: Strawberry (статус: 1-ый класс)
Ответ отправлен: 30.11.2006, 10:35

Отвечает: Краюшкин Игорь Валерьевич
Здравствуйте, Alex81/Alexandr!

У меня есть программка, которая называется "Резервные копии для 1с"
Работает простенько, главное к ней приноровиться при установке (бывает иногда установка не срабатывает). Выбираете 1с базу - место куда копировать - какой присвоить префикс для этой базы - как часто сохранять - сколько хранить копии (по времени, по кол-ву и т.д.). Пишите в личку - скину.
Ответ отправил: Краюшкин Игорь Валерьевич (статус: 6-ой класс)
Ответ отправлен: 30.11.2006, 18:44

Отвечает: Лазурко Владимир
Здравствуйте, Alex81/Alexandr!
Для этих целей есть замечательная штука - Пакетный режим. Для работы Конфигуратора в пакетном режиме в командной строке запуска 1С:Предприятия, кроме параметра CONFIG, указать параметр /@ФайлПакетногоРежима. Файл пакетного режима имеет по умолчанию расширение .prm, если используется другое расширение, то оно должно явно указываться в имени файла.
Для того, чтобы при пакетном режиме не выдавался диалог запуска 1С:Предприятия и диалог авторизации, в строке запуска должны быть указаны все необходимые параметры:
-параметр CONFIG;
-каталог информационной базы (параметр /D);
-имя пользователя, если для данной информационной базы ведется список пользователей (параметр /N);
-пароль пользователя, если для пользователя задан пароль (параметр /Р).

Приложение:

Ответ отправил: Лазурко Владимир (статус: 6-ой класс)
Ответ отправлен: 01.12.2006, 00:42

Отвечает: Maska
Здравствуйте, Alex81/Alexandr!

Самый простой вариант: для целей архивирования баз 1с существует программа "Хранитель", Настройке программы очень проста и "учитывает" все особенности баз 1с.

С уважением, maska!!!
Ответ отправила: Maska (статус: 3-ий класс)
Ответ отправлен: 01.12.2006, 03:22

Отвечает: Гребиников Павел Генадьевич
Здравствуйте, Alex81/Alexandr!
Попробуйте прогу Admin1c. Ссылку к сожалению дать не могу, качал я ее давно, но в инете, я думаю найдете, если что, пишите на личку
---------
Плох тот юзер, который не мечтает стать админом...
Ответ отправил: Гребиников Павел Генадьевич (статус: 10-ый класс)
Ответ отправлен: 01.12.2006, 06:29


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное