Вопрос № 48216: Здравствуйте, глубокоуважаемые господа эксперты. Пожалуйста, ответьте на такой вопрос (подобный уже задавался под № 41334, но я специалист только по 1с, в разных Firewall и ай пи не разбираюсь, но если вы посоветуете, разберусь). Есть 1с v 7.7 под SQ...Вопрос № 48219: Привет всем. Оболочка версии 7.7. Конфигурация создается с нуля. Такой вопрос как сделать чтобы нельзя было удалить или сделать не проведенным документ, если
существуют документы созданные на его основании....Вопрос № 48249: Срочно понадобились печатные формы выданных счетов-фактур в редакциях 2003, 2004 и 2006 (новая) годов. Где можно взять для 7.7 (кроме ИТС)?...
Вопрос № 48.216
Здравствуйте, глубокоуважаемые господа эксперты. Пожалуйста, ответьте на такой вопрос (подобный уже задавался под № 41334, но я специалист только по 1с, в разных Firewall и ай пи не разбираюсь, но если вы посоветуете, разберусь). Есть 1с v 7.7 под SQL 2003. Можно ли как-нибудь посмотреть, кто есть ли в базе в определённый момент времени (особенно надо ночью, в 22:00). В это время меня на работе нет. Заранее спасибо.
Отправлен: 05.07.2006, 12:04
Вопрос задал: Paul-Leon (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Manserg
Здравствуйте, Paul-Leon!
Если через 1С, то например используюя внешнюю компоненту Rainbow.dll и след. функцию:
Функция глПолучитьКоличествоПользователей() Экспорт
ТекстЗапроса = "SET NOCOUNT ON select USRSCNT from _1susers";
ВозКол = 1; // Если этот код работает значит в базе минимум один пользователь есть.
SQL = глВыполнитьSQLЗапрос(ТекстЗапроса);
If SQL <> 0 Then
If SQL.IsOK() = 1 Then ВозКол = SQL.GetLong(SQL.FindField("USRSCNT")); EndIf;
SQL.Close();
SQL.Reset();
EndIf;
Возврат ВозКол;
КонецФункции
Собственно можно просто выполнить след. запрос: "SET NOCOUNT ON select USRSCNT from _1susers" из любой программы поддерживающей язык запросов.
Поставить в системный планировщик задач или используя сам SQL2003 сервер и уже там установить в планировщике выполнение своей встроенной процедуры.
Ответ отправил: Manserg (статус: 1-ый класс)
Ответ отправлен: 05.07.2006, 12:23 Оценка за ответ: 5
Отвечает: Gorus
Здравствуйте, Paul-Leon!
Если Вам нужно узнать кто есть в базе минуя саму 1С, то разбираться придется все равно. Ответы на вопрос № 41334 довольно неплохие, я у себя смотрю открытые файлы на сервере - так можно определить зависшие терминальные сесии.
Если не сложилось с ОС:
1. Из 1С предприятия можно открыть список пользователей в базе: Сервис - Монитор пользователей - Активные...
2. Можно в справочнике пользователей поставить реквизит "Активет" и при старте устанавливать в 1 при выходе в 0. Таким образом можно узнать кто в базе из програмного кода.
3. При старте / завершении работы системы прописывать в какой-то файл кто зашел , кто вышел. Вид и структура файла - в зависимости от потребностей и возможностей.
Если ничего не подходит - конкретизируйте пожалуйста вопрос (кто будет смотреть, когда и откуда), т.к. очень сложно советовать что-то не зная для чего это нужно.
Ответ отправил: Gorus (статус: 2-ой класс)
Ответ отправлен: 05.07.2006, 12:46 Оценка за ответ: 3 Комментарий оценки: Уважаемый Gorus! Не совсем внимательно читали вопрос. Открыть в мониторе
активных пользователей или посмотреть открытые файлы на сервере не могу -
1076;ело происходит ночью. Изменять кофигурацию из-за подобного не очень важного повода мы
не будем
Вопрос № 48.219
Привет всем. Оболочка версии 7.7. Конфигурация создается с нуля. Такой вопрос как сделать чтобы нельзя было удалить или сделать не проведенным документ, если существуют документы созданные на его основании.
Отправлен: 05.07.2006, 12:13
Вопрос задал: Ramzes (статус: Посетитель)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Manserg
Здравствуйте, Ramzes!
Необходимо проверять факт наличия документов на основании этого и написать блокировку этих действий в след. процедурах:
ОбработкаУдаленияПроведения()
ПриУдаленииДокумента(<УдалДокум>,<Режим>)
Ответ отправил: Manserg (статус: 1-ый класс)
Ответ отправлен: 05.07.2006, 12:27
Отвечает: Warior
Здравствуйте, Ramzes! это делается через преопределенную процедуру "ОбработкаУдаленияПроведения()" в модуле документа там ставим проверку на наличие подчиненных документов (ВыбратьПодчиненныеДокументы(<?>,,)) и если надо на их состояние, если есть пишем сообщение пользователю и обрываем выполнение процедуры.
Ответ отправил: Warior (статус: 2-ой класс)
Ответ отправлен: 05.07.2006, 12:29
Отвечает: IUnknown
Здравствуйте, Ramzes!
можно использовать для решения процедуры ОбработкаУдаленияПроведения либо ПриОтменеПроведенияДокумента... первая удобестнее, когда такой документ один... вторая когда таких документов несколько...
Получить подчиненные документы можно имея процедуру ВыбратьПодчиненныеДокументы()
Ответ отправил: IUnknown (статус: 4-ый класс)
Ответ отправлен: 05.07.2006, 12:37
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Ramzes!
В добавление ко всем ответам напоминаю, что отменяет распроведение команда
СтатусВозврата(0);
Срочно понадобились печатные формы выданных счетов-фактур в редакциях 2003, 2004 и 2006 (новая) годов. Где можно взять для 7.7 (кроме ИТС)?
Отправлен: 05.07.2006, 16:38
Вопрос задал: Nelse (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: BuhCIA
Здравствуйте, Nelse!
форма (2004 + 2006 новая) единая - прикреплена, поместить ее нужно в \ExtForms\PrnForms (пройдет для релизов не старше пары лет назад). А старую 2003 Вы можете и сами изготовить из нынешней конфигурации (открыть в Конфигураторе документ СчетФактура, перейти на вкладку с таблицей, (меню Файл-Сохранить как) или правый клик - сохранить таблицу...
Прикреплённый файл: Загрузить >> Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа. --------- Скажите, сколько времени? - (устало, показывая часы) Читайте, там же все написано!
Ответ отправил: BuhCIA (статус: Практикант)
Ответ отправлен: 05.07.2006, 17:02 Оценка за ответ: 5 Комментарий оценки: Спасибо за форму