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

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

  Все выпуски  

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


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

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

Выпуск № 480
от 25.04.2007, 17:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 388, Экспертов: 53
В номере:Вопросов: 4, Ответов: 17


Вопрос № 83406: Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста, есть ли возможность в версии ,1с 7.7 определить, какой документ в данный момент открыт. Мне необходимо открыть отчет при этом данные должны быть из текущего документа. ..
Вопрос № 83410: Здравствуете, уважаемые эксперты. Кто-то из пользователей пометил на удаление несколько документов, а в журнале регистрации никаких записей об этом нет. Каким еще способом можно узнать кто это сделал и когда? 25 релиз, SQL. Спасибо....
Вопрос № 83425: Здравствуйте!! Мне нужно товар в документе выбирать из двух справочников или из справочника Материалы или Оборудование, я создала реквизит товар с типом значения Справочник, при выборе товара выскакивает окно со всеми справочниками, т.к. их много иск...
Вопрос № 83436: Добрый день, уважаемые эксперты!Ситуация следующая:в организации установлены 2 конфигурации - УСН базовая 152 релиз и Бухгалтерия(традиционная) 487 релиз.В традиционке наблюдается следующая странная проблема:программа почему-то не видит "Расчет ...

Вопрос № 83.406
Здравствуйте, уважаемые эксперты!
Подскажите, пожалуйста, есть ли возможность в версии ,1с 7.7 определить, какой документ в данный момент открыт. Мне необходимо открыть отчет при этом данные должны быть из текущего документа.
Отправлен: 20.04.2007, 10:40
Вопрос задал: Tatyana278 (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ovr1970
Здравствуйте, Tatyana278!
Вы, по моему, уже спрашивали. Такая возможность существует, через лог, который ведет 1С. Его можно просмотреть через монитор пользователей или написать программу, которая будет анализировать его и передавать полученные данные в 1С.
Но получить данные из открытого и измененного документа, если он не записан, можно только одним способом - передать его контекст. Соответственно это возможно только тогда, когда Вы же его и открыли.
При этом имейте в виду, хотя документ и заблокирован, любой пользователь может открыть его для просмотра (естественно увидит он ранее записанные данные, которые были до открытия) или использовать в отчете.
Ответ отправил: Ovr1970 (статус: Практикант)
Ответ отправлен: 20.04.2007, 11:18

Отвечает: DERL.KG
Здравствуйте, Tatyana278!
Я как то делал это через внешнюю компоненту Admin1C.dll
Пришлите мне свое мыло, я вам вышлю саму компоненту, пример и описание...
Ответ отправил: DERL.KG (статус: 1-ый класс)
Ответ отправлен: 20.04.2007, 12:04

Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Tatyana278!
А почему бы Вам в форме документа не разместить кнопку для открытия отчета.
ОткрытьФорму("Отчет.......
А документы передавайте как Контекст
Ответ отправил: Шахрайчук Владимир Анатольевич (статус: Студент)
Ответ отправлен: 20.04.2007, 14:11
Оценка за ответ: 5
Комментарий оценки:
Да, такой вариант решения задачи мне понятен. просто не хотелось во все документы добавлять эту кнопку. Так как данный отчет необходимо вызывать из нескольких документов.


Вопрос № 83.410
Здравствуете, уважаемые эксперты.
Кто-то из пользователей пометил на удаление несколько документов, а в журнале регистрации никаких записей об этом нет. Каким еще способом можно узнать кто это сделал и когда? 25 релиз, SQL.
Спасибо.
Отправлен: 20.04.2007, 11:10
Вопрос задала: Nasta (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Андрей Тимофеев
Здравствуйте, Nasta!
В журнале регистрируются только интерактивные действия пользователей. А если это было сделано програмным методом, например обработкой, вы ничего не узнаете, увы.
Ответ отправил: Андрей Тимофеев (статус: 2-ой класс)
Ответ отправлен: 20.04.2007, 11:33
Оценка за ответ: 5

Отвечает: Vizli
Здравствуйте, Nasta!

Если в журнале регистрации нет данных об измененных/удаленных объектах, то возможны два случая:

1. В конфигураторе в настройке параметров журнала регистрации не установлена галочка "Изменение данных" и узнать кто это сделал и когда нет возможности вне зависимости от релиза/платформы.

2. В конфигураторе в настройке параметров регистрации хоть и установлена галочка "Изменение данных" но данные были изменены пользователем с помощью обработки а не интерактивно. Узнать кто это сделал и когда также нет возможности вне зависимости от релиза/платформы.

Выводы:

Чтобы исключить на будущее случай 1 в конфигураторе в настройке параметров журнала регистрации устанавливаем все галочки.

Чтобы исключить на будущее случай 2 в конфигураторе в глобальном модуле в предопределенной процедуре ПриУдаленииДокумента(<УдалДокум>,<Режим>) пишем собственную обработку удаления/пометки удаления документов.

Если я не прав - поправьте меня.
Ответ отправил: Vizli (статус: 5-ый класс)
Ответ отправлен: 20.04.2007, 11:46
Оценка за ответ: 5

Отвечает: DERL.KG
Здравствуйте, Nasta!
Если нет записей в журнале регистраций, то документы были помечены на удаление программно (в обработке)... А кроме журнала регистраций, в 1С нет возможности узнать требуемую информацию...
Ответ отправил: DERL.KG (статус: 1-ый класс)
Ответ отправлен: 20.04.2007, 11:49

Отвечает: Strawberry
Здравствуйте, Nasta!
Если в журнале регистрации нет ничего то пометка на удаление производилась с помощью обработки которая не фиксирует изменения в журнале регистрации,узнать кто почти невожможно. Как вариант этого избежать (отсутствие отметки в журнале регистрации)в предопределенной процедуре при удалении документа (в глобальном модуле)вставить код который буде фиксироватьвсе движения конкретного пользователя
---------
Мальчик-извращенец прочел деду Морозу с табуретки всего Пастернака!
Ответ отправил: Strawberry (статус: 6-ой класс)
Ответ отправлен: 20.04.2007, 12:07
Оценка за ответ: 5


Вопрос № 83.425
Здравствуйте!! Мне нужно товар в документе выбирать из двух справочников или из справочника Материалы или Оборудование, я создала реквизит товар с типом значения Справочник, при выборе товара выскакивает окно со всеми справочниками, т.к. их много искать нужные справочники не очень удобно, подскажите пожалуйста как сделать чтобы при выборе товара выскакивало окно только с двумя этими справочниками или может быть список. Заранее спасибо
Отправлен: 20.04.2007, 12:34
Вопрос задал: Fifina (статус: Посетитель)
Всего ответов: 9
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Gl0betrotter
Здравствуйте, Fifina!

В модуле формы документа в конце кода или в процедуре ПриОткрытии() добавить строку

Товар.ВидыДляВыбора("Материалы,Оборудование");

Удачи!
Ответ отправил: Gl0betrotter (статус: Студент)
Ответ отправлен: 20.04.2007, 13:05
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: Андрей Тимофеев
Здравствуйте, Fifina!
ВидыДляВыбора(<?>)
Синтаксис:
ВидыДляВыбора(<СписокВидов>)
Назначение:
Установка выбираемых видов для справочника неопределенного вида.
Возвращает:
Строковое значение, содержащее текущий список видов выбираемых справочников, разделенных запятыми (на момент до исполнения метода).
Параметры:
<СписокВидов> - строка, содержащая список видов выбираемых справочников, разделенных запятыми.
Замечание:
Метод можно использовать только для объектов-справочников неопределенного вида, созданных функцией СоздатьОбъект, либо определенных в конфигураторе как реквизит диалога или реквизит другого объекта.
Ответ отправил: Андрей Тимофеев (статус: 2-ой класс)
Ответ отправлен: 20.04.2007, 13:09
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: Strawberry
Здравствуйте, Fifina!
Существует предопределенная прцедура при начале выбора значения
в ней описываете что должно произойти при выборе реквизита "Товар"
например выбрасывается список значений и из него выбирается нужный вам справочник.
Вопрос к размышлению - в таблице (если "Товар" реквизит табличной части) однородный вид справочника ?? если да то целесообразнее установить реквизит шапки который будет регулировать вид справочника для реквизита "Товар"
---------
Мальчик-извращенец прочел деду Морозу с табуретки всего Пастернака!
Ответ отправил: Strawberry (статус: 6-ой класс)
Ответ отправлен: 20.04.2007, 13:15
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: Vizli
Здравствуйте, Fifina!

пусть у Вас на форме элемент управления типа "Справочник" имеет имя - СправочникДляВыбора, тогда можно сделать так:

1. рядом с реквизитом СправочникДляВыбора добавьте кнопку выбора типа справочника, на нее повесьте процедуру:

Процедура ВыбратьТипСправочника()
Перем Действие;
СписокДействий = СоздатьОбъект("СписокЗначений");
СписокДействий.ДобавитьЗначение("Д1","Нужный тип справочника 1");
СписокДействий.ДобавитьЗначение("Д1","Нужный тип справочника 1");

СписокДействий.ВыбратьЗначение(Действие,,,,);

Если Действие="Д1" Тогда
НазначитьВид(СправочникДляВыбора,"ИмяСправочникаИзКонфигуратора1");
ИначеЕсли Действие="Д2" Тогда
НазначитьВид(СправочникДляВыбора,"ИмяСправочникаИзКонфигуратора2");
КонецЕсли;
КонецПроцедуры

2. теперь при нажатии на СправочникДляВыбора как обычно нажимаем на кнопку выбора значения т.к. нужный тип справочника

3. для того, чтобы предотвратить появление списка всех справочников, если кнопка выбора нужного типа справочника еще не была нажата, добавим предопредленную процедуру:

Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога,ФлагСтандОбр)
Если (ИдентЭлемДиалога="СправочникДляВыбора") И (ПустоеЗначение(СправочникДляВыбора.Вид())=1) Тогда
ФлагСтандОбр=0;
Иначе
ФлагСтандОбр=1;
КонецЕсли;
КонецПроцедуры
Ответ отправил: Vizli (статус: 5-ый класс)
Ответ отправлен: 20.04.2007, 13:21
Оценка за ответ: 5
Комментарий оценки:
Спасибо, но кнопок и так достаточно, если по другому никак не получиться воспользуюсь вашим советом

Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Fifina!
Я надеюсь, что мой ответ будет самым лучшим.
Документ иногда сам знает, какую форму ему открыть. Например, в документе есть реквизит СчетТМЦ. И мы знаем, что Материалы могут приходоваться только на счета 20.1 или 20.3, а оборудование на счета 22.1 или 15.4

Процедура ПриРедактированииНовойСтроки()
Если СчетТМЦ=СчетПоКоду("20.1") или СчетТМЦ=СчетПоКоду("20.3") тогда
ТМЦ.НазначитьВид("Материалы");
ТМЦ.НеИзменятьВид(1); Теперь окошко выбора вида не будет появляться вообще.
ИначеЕсли СчетТМЦ=СчетПоКоду("22.1") или СчетТМЦ=СчетПоКоду("15.4") тогда
ТМЦ.НазначитьВид("Оборудование");
ТМЦ.НеИзменятьВид(1); Теперь окошко выбора вида не будет появляться вообще.
Иначе
Сообщить("Неправильный счет");
ТМЦ.НеИзменятьВид(0); Теперь окошко выбора вида будет появляться всегда.
КонецЕсли;
КонецПроцедуры

Можно написать проще
ТМЦ.НазначитьВид(СчетТМЦ.ВидСубконто(1))
ТМЦ.НеИзменятьВид(1);

Ответ отправил: Шахрайчук Владимир Анатольевич (статус: Студент)
Ответ отправлен: 20.04.2007, 13:41
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: AlexStoune
Здравствуйте, Fifina!
Я в такой ситуации обычно кидаю на форму кнопку и пару переключателей, и обрабатываю так:
Если ВыбДок=1 Тогда Док = СоздатьОбъект("Документ.****");
ИначеЕсли ВыбДок=2 Тогда Док = СоздатьОбъект("Документ.****");
КонецЕсли;
Док.Выбрать("Выберите документ","");
К справочникам помоему этот метод тоже подойдет.

С уважением,
AlexStoune
Ответ отправил: AlexStoune (статус: 1-ый класс)
Ответ отправлен: 20.04.2007, 14:20
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Но на форме и так достаточно кнопок

Отвечает: Ovr1970
Здравствуйте, Fifina!
В принципе ограничить список справочников для Выбора просто, в обработке "ПриНачалеВыбораЗначения" написать
<ИмяРекв>.ВидыДляВыбора(<СписокВидов>);
Но я считаю подобный способ не удобным, и (если это возможно) предлагаю устанавливать вид справочника отдельным реквизитом формы (не документа). В этом случае при начале выбора значения используется конструкция
НазначитьВид(<ИмяРекв>,<Вид справочника в зависимости от реквизита формы>);
Соответсвенно вы при выборе сразу попадаете в нужный справочник и не проходите каждый раз выбор вида справочника.

Ответ отправил: Ovr1970 (статус: Практикант)
Ответ отправлен: 20.04.2007, 15:53
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Попробую

Отвечает: Николай Александрович
Здравствуйте, Fifina!

Если вы работаете в 7.7, то сделать можно так:
Процедура Приоткрытии()
............
Спр.ВидыДляВыбора("Материалы,Оборудование") // допустим, Спр - Ваш реквизит типа "Справочник", а в скобках, через запятую перечислены идентификаторы справочников из которых необходим выбор.
............
КонецПроцедуры
Ответ отправил: Николай Александрович (статус: 1-ый класс)
Ответ отправлен: 20.04.2007, 16:41
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ответ, я так попробывала но у меня не получилось, в чем причина не могу понять

Отвечает: DERL.KG
Здравствуйте, Fifina!
Вам нужно написать в том месте, где у вас идет определение какой справочник открывать добавить
след. код:
Если <Условие> Тогда
НазначитьВид(Спр,"Справочник.Материалы");
Иначе
НазначитьВид(Спр,"Справочник.Оборудование");
КонецЕсли;
где Спр - имя реквизита товар с типом значения Справочник
Ответ отправил: DERL.KG (статус: 1-ый класс)
Ответ отправлен: 23.04.2007, 06:53


Вопрос № 83.436
Добрый день, уважаемые эксперты!Ситуация следующая:в организации установлены 2 конфигурации - УСН базовая 152 релиз и Бухгалтерия(традиционная) 487 релиз.В традиционке наблюдается следующая странная проблема:программа почему-то не видит "Расчет авансовых платежей по ЕСН" в отчетности за 1кв.2007г(т.е.захожу в отчеты - регламентированные - отчетность за первый квартал 2007года - налоговая отчетность - раздел "Расчет авансовых платежей по ЕСН" вообще отсутствует!).Такая ситуация наблюдается только в отчетности за 1кв. 2007года(не важно какой релиз) - в отчетности за 4кв. 2006года(или еще более ранних версиях) все нормально!Сначала попробовал через файл - открыть - папка Rp07q1.grp - файлы ESNAVP01.ERT,
ESNAVP03.ERT, ESNAVP04.ERT, ESNAVP05.ERT, ESNAVP06.ERT, ESNAVP07.ERT, ESNAVP08.ERT прогамма почему-то не видит совсем(хотя они есть)!Тогда я попробовал проделать эту ту же процедуру через УСНку - все нормально.И вот тогда случилось чудо! - после этого бухгалтерия, таким же способам, тоже начала открывать файлы ЕСН(отчеты даже можно заполнить), но в отчетности за 1кв.2007г их по прежнему нету!
Ситуация для меня загадочная - первый раз такое встречаю!Может кто знает что это такое(причина?) и как это лечится?
Буду очень благодарен!Заранее спасибо всем!
P.S.Операционка Windows XP SP1.
Отправлен: 20.04.2007, 13:24
Вопрос задал: Alex81 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

Была похожая ситуация, только не с регламентированными отчетами. Стоит 3 компа, на всех 1С и одна конфигурация. Я себе поставил OpenConf и еще что-то, уже не помню. Пусть она у нас будет называться 1С_моя. Сделал какой-то отчет. Запускаю у себя, проверил все нормально. Добавил его в меню общей конфигурации. При запуске отчета с других компьютеров, он не открывался!!! Т.е. его как будто не было такого файла. Я сначала подумал что путь не правильно указал, посмотрел - правильно. У себя запускаю - запускается, на двух других не запускается. Я был в ступоре. Решил проблему так: открыл отчет у себя в конфигураторе(1С_моя), открыл конфигуратор общей базы, просто скопировал на новую форму отчета все элементы и модуль, сохранил. Все у всех заработала, причем отчет также открывается и в моей 1С_моя.

Объяснить с чем это связано я не могу, возможно екзешник какой-то битый, возможно дело в MDшнике, и посмотрите на вский случай в папке с 1С(программа) файл с расширением *.maniefest. Если есть удалите его.

Главные признаки такой 1С: Отчет в конфигураторе открывается нормально. На всех других машинах(т.е. разные папки с 1С) отчет в конфигураторе не открывается, пишет что-то "Ошибка открытия файла". Вообщем ошибка непонятная, и с чем связано - необъяснимо. Варианты лечения - переустановить 1С, перекомпилировать MDшник,....
Ответ отправил: svsrus (статус: 5-ый класс)
Ответ отправлен: 20.04.2007, 16:27
Оценка за ответ: 5
Комментарий оценки:
Спасибо за попытку помочь!Будем пробовать - хочу попробовать сначала сохранить данные в кон-ре,а затем восстановить их на чистой базе - возможно и поможет?!Если нет - установка чистой базы и начинать вести учет в ней заново!


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.50 (beta) от 15.04.2007
Яндекс Rambler's Top100

В избранное