Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 1C Программирование и поддержка

Модерирует : ShIvADeSt

ShIvADeSt (03-04-2009 02:03): Продолжение тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=10256#1
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тема для программирования !!!
Это продолжение темы, предыдущие части доступны тут


ПРОГРАММЫ  1С:Предприятие 1C - 1C: Вопросы по конфигурациям

ВАРЕЗНИК   1C:Предприятие 7.7 - 1С:Предприятие v.8.x - 1C Диск ИТС - 1С: Совместимо 8.х

Топик 1C Ebooks
ЗДЕСЬ (обновлено 27.03.2009) - небольшая библиотечка (книги, документация, видео, утилиты) по 1С, финансам, бухучету и т.п.
Все рассортировано по версиям...

Для заблудившихся в трех соснах >>> FAQ по форуму RU.Board

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:30 06-02-2008 | Исправлено: vkramnik, 21:26 27-03-2009
demo06



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Плиз,подскажите как в линукс(ubuntu) под вайн запустить 1С

Всего записей: 243 | Зарегистр. 25-01-2006 | Отправлено: 08:11 08-12-2008
DARKDEAD

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
demo06
На офф сайте вайна все подробно написанно...  
ЗЫ герой.. у тя сколько машин 1С юзать будут? Тоже тестил, но в производство внедрить так и не рискнул...

Всего записей: 249 | Зарегистр. 04-02-2008 | Отправлено: 09:16 08-12-2008
tippmann



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DARKDEAD
M_Volkov
Мужики, да мне надо не 1С у юзера закрыть, а отдельный документ открытый у пользователя!
Просто пока он открыт, я его провести не могу, и ваще ничего сделать не могу, т.к. он заблокирован. А все остальные документы и отчеты должны остаться открытыми!
Ситуация: в 2 часа дня все менеджеры должны сдать заказы на след. день. Они их забивают в определенный документ, и он у них вечно открыт. Мне надо в 2 часа дня позакрывать у всех документ этого типа, провести, запретить его редактирование, на основе этого сформировать общий заказ. Вот такая фигня.

Всего записей: 566 | Зарегистр. 16-04-2003 | Отправлено: 10:53 08-12-2008
Alexsandrius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tippmann
Сделай обработку "типа АРМ кассира", пусть все данный вносятся туда. А сама обработка создает документы, хоть по времени, хоть по условию. При это пользователям запретить напрямую открывать и создавать данные документы. Сам сделал так, ситуация была похожа.

Всего записей: 4 | Зарегистр. 19-11-2008 | Отправлено: 12:16 08-12-2008
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
tippmann

Цитата:
мне надо не 1С у юзера закрыть, а отдельный документ открытый у пользователя!

могу лишь предложить механизм корректного завершения работы пользователя, а анализ на "отдельный документ" - можно доработать. Идею я уже излагал:

Цитата:
У меня это реализовано следующим образом:  
В справочник "Пользователи" добавил реквизит "ЗапретРаботы" (если избирательность не важна, достаточно константы), доступный только администраторам системы. В процедуре "ПриНачалеРаботыСистемы()" запускается "ОбработкаОжидания("ЗапретРаботы", 300)", т.е. каждые 5 минут запускается процедура "ЗапретРаботы()", которая проверяет состояние реквизита "ЗапретРаботы". Если он установлен, то переход в процедуру "ЗавершитьРаботуСистемы(0)", а тут уж варианты: на первый раз предлагает пользователю самому завершить работу, в следующие 5 минут, при не подчинении пользователя, делаем это принудительно.

И так подробнее:
1. В справочник "Пользователи" добавляем реквизит "ЗапретРаботы" - Запрет входа в базу, тип - Число, длина = 1.
В "ФормуСписка" этого справочника можно вставить 2-е кнопки: "КнЗапретВкл" и "КнЗапретВыкл" - "Запрет работы всем:" и в модуле пишем:
////////////////////////////////////////////////////////////////////////////////
Процедура ЗапретитьРаботу(Запрет)
    Спр = СоздатьОбъект("Справочник.Пользователи");
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() > 0 Цикл
        Если Спр.Код = "Администратор" Тогда
            Продолжить;
        КонецЕсли;
        Если Спр.ЗапретРаботы = Запрет Тогда
            Продолжить;
        КонецЕсли;
        Спр.ЗапретРаботы = Запрет;
        Спр.Записать();
    КонецЦикла;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ
//
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриОткрытии()
    
    Форма.ЗапретРаботы.Видимость (?(СокрЛП(глПользователь.Код) = "Администратор", 1, 0));        
    Форма.КнЗапретВкл.Видимость  (?(СокрЛП(глПользователь.Код) = "Администратор", 1, 0));        
    Форма.КнЗапретВыкл.Видимость (?(СокрЛП(глПользователь.Код) = "Администратор", 1, 0));    
    
КонецПроцедуры // ПриОткрытии()          
 
// т.е. управлять запретом может только "Администратор"!
 
2. В глобальном модуле пишем:
Перем глАвтоЗапуск                Экспорт; // Эта переменная используется у меня не только запрета работы
//******************************************************************************
// ЗапретРаботы()
//
// Описание:
//    Принудительно завершает работу пользователя.    02.04.2007    МВ.
//
Процедура ЗапретРаботы()
 
    Спр = СоздатьОбъект("Справочник.Пользователи");
    Спр.НайтиЭлемент(глПользователь);
    Если глАвтоЗапуск = "Выход" Тогда
        ЗавершитьРаботуСистемы(0);
    ИначеЕсли Спр.ЗапретРаботы = 1 Тогда
        глАвтоЗапуск = "Предупреждение";
        Предупреждение("      Ваше время работы истекло, просьба завершить работу.
                       |У Вас осталась 1 минута на сохранение не записанных документов!", 20);
        ЗавершитьРаботуСистемы(0);
    КонецЕсли;
    
КонецПроцедуры // ЗапретРаботы()
 
//******************************************************************************
3. В процедуру ПриНачалеРаботыСистемы() втавляем:
    Если глПользователь.ЗапретРаботы = 1 Тогда
        Предупреждение("Вход в систему не возможен!", 5);
        глАвтоЗапуск = "Запрет";
            ЗавершитьРаботуСистемы(0);
    Иначе
        ОбработкаОжидания("ЗапретРаботы",60);    //    Проверка каждую минуту
    КонецЕсли;
 
4. В процедуру ПриЗавершенииРаботыСистемы() втавляем:
    Если ИмяПользователя() = "Администратор" Тогда
    ИначеЕсли глАвтоЗапуск = "Запрет" Тогда
        Возврат;
    ИначеЕсли глАвтоЗапуск = "Выход" Тогда
        Предупреждение("Спасибо за работу.
                       |  До свидания!", 5);
        Возврат;
    ИначеЕсли глАвтоЗапуск = "Предупреждение" Тогда
        глАвтоЗапуск = "Выход";
    КонецЕсли;
Таким образом, завершение работы пользователя выполняется корректно, с закрытием всех его открытых документов. DBF-базы не требуют переиндексации, как при аварийном завершении.
Удачи!

Всего записей: 5806 | Зарегистр. 23-06-2008 | Отправлено: 12:49 08-12-2008
An4eus



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
tippmann
идею тебе написал M_Volkov

Цитата:
Мужики, да мне надо не 1С у юзера закрыть, а отдельный документ открытый у пользователя!

можно ещё более извратиться:
1. создать справочник Кофигурация. В нём будет, например, флаг закрытия формы (элементы справоничка - объекты метаданных)
2. В каждый объект в процедуру ПриОткрытии сделать вызов на какую-нибудь глобальную процедуру глПриОткрытии(Контекст)
3. Она же в свою очередь анализирует: какой пользователь работает с формой и что за форма
4. Затем она с какой периодичность вызывает ещё одну глобальную процедуру в обработке ожидания (ну например, каждые 5 минут) Эот процедура смотрит справочник Конфигурация на флаг, если же оказывается, что флаг=1, то будет Конт.Закрыть(0);
А флаг могут править администраторы!


----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 13:43 08-12-2008
4Life



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Как можно отсортировать журнал договоров не по дате записи, а по номеру договора?

----------
▓▓▓Made in Ukraine▓▓▓

Всего записей: 766 | Зарегистр. 05-06-2003 | Отправлено: 13:53 08-12-2008
An4eus



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
4Life

Цитата:
Как можно отсортировать журнал договоров не по дате записи, а по номеру договора?

1. конфигурация/номер релиза?
2. это что: документ, журнал документов, форма списка справочника?

----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 13:57 08-12-2008
tdr1225



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tippmann
Ни хрена M_Volkov тебе не подсказал, он закрывает 1С. А вот Alexsandrius сказал нечто дельное. А правда не знаю, что это за обработка "АРМ кассира", но способ использовать обработку и не открывать док. напрямую поможет (должен помочь).

Всего записей: 282 | Зарегистр. 07-12-2005 | Отправлено: 14:00 08-12-2008
4Life



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
An4eus
1. Бух.учет для украины 7,70,025
2. Журнал документов


----------
▓▓▓Made in Ukraine▓▓▓

Всего записей: 766 | Зарегистр. 05-06-2003 | Отправлено: 14:04 08-12-2008
tippmann



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо народ! Общее направление я понял, ну а реализация - дело техники...
А процедура ОбработкаОжидания() машину нагружает? Я ж так понимаю там пустой цикл крутится заданный интервал времени...

Всего записей: 566 | Зарегистр. 16-04-2003 | Отправлено: 14:06 08-12-2008
An4eus



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
4Life
Цитата:
An4eus  
1. Бух.учет для украины 7,70,025  
2. Журнал документов

ну это скорей всего через отборы ... вообще идет сортировка по внутренненую представлению документа - позиции
А вообще, зачём это делать?
 
 
tippmann
так можно же протестировать!

----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 14:17 08-12-2008
4Life



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
А вообще, зачём это делать?  

Заказчик хочет

----------
▓▓▓Made in Ukraine▓▓▓

Всего записей: 766 | Зарегистр. 05-06-2003 | Отправлено: 14:19 08-12-2008
DARKDEAD

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tippmann
раньша да, но уже давно решили эту проблему, загрузка отсутствует

Всего записей: 249 | Зарегистр. 04-02-2008 | Отправлено: 14:31 08-12-2008
softechhh

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем!! Нужно выбрать подчиненные док-ты, но выдает ошибку! Пишу:
 
Процедура ПодчинДок()
 
    Док = СоздатьОбъект("Документ");
    Док.ВыбратьПодчиненныеДокументы(,,Док);
    Пока Док.ПолучитьДокумент()=1 Цикл
          Если (Док.Вид() = "ЗаказРаспределение") Тогда
              Сообщить(Док.ТекущийДокумент());
          КонецЕсли;
КонецЦикла;      
КонецПроцедуры
 
Выбает ошибку: Не выбран документ!

Всего записей: 26 | Зарегистр. 19-11-2008 | Отправлено: 11:42 09-12-2008
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
softechhh

Цитата:
Нужно выбрать подчиненные док-ты, но выдает ошибку: Не выбран документ!

Уточняю: Не выбран документ основание! Надо: Док.ВыбратьПодчиненныеДокументы(,,ДокОснование); либо: Док.ВыбратьПодчиненныеДокументы(,,ТекущийДокумент()); в зависимости где, в каком модуле пишешь

Всего записей: 5806 | Зарегистр. 23-06-2008 | Отправлено: 12:34 09-12-2008
An4eus



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
4Life
в журанле это вроде будет проблематично сделать!
можно сделать внешную обработку, в которой и будет формироваться список документов ТабЧасти!
 
softechhh

Цитата:
Нужно выбрать подчиненные док-ты, но выдает ошибку!

1.где это процедура написана?
2. что такое Док здесь?

Код:
 
ВыбратьПодчиненныеДокументы(,,Док);
 

3. какая переменная у документа-основания?


----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 12:35 09-12-2008
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
глюк был

Всего записей: 5806 | Зарегистр. 23-06-2008 | Отправлено: 12:44 09-12-2008 | Исправлено: M_Volkov, 12:59 09-12-2008
softechhh

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это делается отчет, в модуле отчета!! вприницпе проблему решил, всем спасибо!!
 
ДокОснованием у меня служил запрос! А все из за кривости 1С!  
Вот так не работало
 
_док = Запрос.ЗаказИнтернет
док.ВыбратьПодчиненныеДокументы(ВыбНачПериода,ВыбКонПериода,_док);                        
Пока  док.ПолучитьДокумент() > 0 Цикл
    Если док.Вид() = "ЗаказРаспределение" Тогда
    Таб.ВывестиСекцию("Распределение");
                КонецЕсли;
КонецЦикла;
 
А так заработало:
 
док.ВыбратьПодчиненныеДокументы(ВыбНачПериода,ВыбКонПериода,_Запрос.ЗаказИнтернет);

Всего записей: 26 | Зарегистр. 19-11-2008 | Отправлено: 13:14 09-12-2008
An4eus



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
softechhh
не может такого быть!
может надо было написать вот так:

Код:
 
_док = _Запрос.ЗаказИнтернет  
док.ВыбратьПодчиненныеДокументы(ВыбНачПериода,ВыбКонПериода,_док);
 
?

----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 13:37 09-12-2008 | Исправлено: An4eus, 13:39 09-12-2008
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 1C Программирование и поддержка
ShIvADeSt (03-04-2009 02:03): Продолжение тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=10256#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru