Вопрос № 73691: Открываю новый документ вхожу в Процедуру ВводНового(), далее срабатывает Процедура ПриОткрытии() и появляется форма для ввода данных, а пользователь нажимает "Х"(вверхнем правом углу окна) появляется вопрос "Сохранить документ ? Да Не...Вопрос № 73725: Здравствуйте, уважаемые господа эксперты!!!
Проблема в следующем: необходимо узнать сколько лет сотрудник проработал на госслужбе. Есть две переменной: Датапоступления и текущаяДата(). Текущаядата Всегда больше, чем датапоступления. Как корректно...Вопрос № 73799: Доброго времени суток...
Я пишу обработку, которая автоматически если не все Субконто заполенны их заполняет.
Я сделал выборку всех проводок. Но когда я пытаюсь изменить реквизиты проводки, то мне выдается сообщение об ошибки, что типа не мо...
Вопрос № 73.691
Открываю новый документ вхожу в Процедуру ВводНового(), далее срабатывает Процедура ПриОткрытии() и появляется форма для ввода данных, а пользователь нажимает "Х"(вверхнем правом углу окна) появляется вопрос "Сохранить документ ? Да Нет Отмена" и при ответе "Да" сохраняется пустой документ. Режим открытия объектов =Просмотр. Как сделать так, чтобы этот вопрос не задавался и конечно не сохранялся документ. Буду признателен за ответ.
Отправлен: 01.02.2007, 21:35
Вопрос задал: Викентий (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Elric
Здравствуйте, Викентий!
Каким образом Вы входите в процедуру ВводНового если режим открытия ТолькоПросмотр? Явно что-то не оттуда.
Вопрос "Сохранить документ?" задается только в двух случаях:
а) Был создан новый документ (интерактивно создать документ в режиме "Только просмотр" этот нонсенс)
б) Был изменен открытый документ (интерактивно либо программно, например в той же процедуре ПриОткрытии)
Проверьте, какой случай -- Ваш.
--------- Мирный атом в КАЖДЫЙ дом!
Ответ отправил: Elric (статус: Специалист)
Ответ отправлен: 02.02.2007, 00:58 Оценка за ответ: 2
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Викентий!
ПриЗаписи()
Если КоличествоСтрок()=0 Тогда
Предупреждение("Не сохранять!!!");
СтатусВозврата(0);
Форма.Закрыть(0);
Сделать подобное у Вас получится исключительно на уровне кода - несмотря на то, что в настройках параметров системы режим открытия объектов стоит в значении "Просмотр" новый документ ввести можно - так придумала (недодумала) 1С...
Как реализовать программно - создаем константу РежимОткрытияОбъектов (Число, длина = 1, точность = 0, неотрицательное). В самое начало процедуры ВводНового() внедряем условие, приведенное ниже
Если Константа.РежимОткрытияОбъектов=0 Тогда
Предупреждение("Установлен режим открытия объектов: Просмотр."+РазделительСтрок+"Ввод новых документов запрещен!",5);
СтатусВозврата(0);
Возврат;
КонецЕсли;
В результате получаем - если значение нашей константы =0 - ввести новый документ не получится, если значение нашей константы =1 - милости просим, вводите новый и работайте...
Удачи!
Ответ отправил: Gl0betrotter (статус: Студент)
Ответ отправлен: 02.02.2007, 15:20 Оценка за ответ: 3
Отвечает: Владимир Лазурко
Здравствуйте, Викентий!
А всё ли в прорядке с правами доступа? Возможно роазработчик Вашей конфигурации не написал предупреждение или кто-то наоборот, убрал оное. По тексту модуля пробегитесь поиском строки "Форма.Просмотр" и станет ясно, где устанавливается просмотр и при каких условиях. Например, остутствуют права на документ, либо установлена какая-то константа запрета ввода документов и т.д.
Успехов!
Ответ отправил: Владимир Лазурко (статус: 7-ой класс)
Ответ отправлен: 03.02.2007, 08:43 Оценка за ответ: 1
Вопрос № 73.725
Здравствуйте, уважаемые господа эксперты!!!
Проблема в следующем: необходимо узнать сколько лет сотрудник проработал на госслужбе. Есть две переменной: Датапоступления и текущаяДата(). Текущаядата Всегда больше, чем датапоступления. Как корректно отнять одну дату от другой, чтоб вышло точное количество лет и месяцев работы на госслужбе???
Например 12.01.07-18.10.01 должно примерно получится примерно 26.09.05, расчет может неверный, но по-моему смысл понятен. В принципе, хватит знать только количество лет и месяцев...
Отправлен: 02.02.2007, 07:00
Вопрос задал: BigHard (статус: 1-ый класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ahab
Здравствуйте, BigHard!
текущаяДата() - Датапоступления = количество дней разницы между ними... если примерно получить в годах надо то /365, если надо точно то тебе прийдётся ещё подумать.... ;)
удачи
Ответ отправил: Ahab (статус: 3-ий класс)
Ответ отправлен: 02.02.2007, 07:19 Оценка за ответ: 5 Комментарий оценки: Да мне надо только годы, ксати я уже так сам сделал, додумался, блин, спасибо
Отвечает: IUnknown
Здравствуйте, BigHard!
узнаем количество месяцев
(ДатаГод('01.01.2006') - ДатаГод('01.01.2005')) * 12 + (ДатаМесяц('01.01.2006') - ДатаМесяц('01.01.2005'))
ну а количесвто лет либо целое от деления месяцев на 12, либо
Цел((Число(Формат('01.01.06',"ДГГГГММДД")) - Число(Формат('01.01.05',"ДГГГГММДД"))) / 10000)
--------- я не специалист
Ответ отправил: IUnknown (статус: 10-ый класс)
Ответ отправлен: 02.02.2007, 07:53
Отвечает: Palkin
Здравствуйте, BigHard!
Вот как это реализовано в ЗиК
Приложение:
Ответ отправил: Palkin (статус: 3-ий класс)
Ответ отправлен: 02.02.2007, 07:54
Вопрос № 73.799
Доброго времени суток...
Я пишу обработку, которая автоматически если не все Субконто заполенны их заполняет.
Я сделал выборку всех проводок. Но когда я пытаюсь изменить реквизиты проводки, то мне выдается сообщение об ошибки, что типа не могу изменить записанные проводки. Подскажите пожалуйста как мне получить доступ к изменению записанных проводок?
Вам надо создать объект Операция и менять соответствующие операции, а не пытаться обратиться непосредственно к проводке. И потом к операции применять метод Записать(). Выборка проводок сама по себе открыта "только для чтения".
Т.е. из выборки проводок (по Вашему алгоритму) определяете какую проводку нужно менять (и в какой операции), объект типа Операция позиционируете на эту операцию, меняете данные в соответствующей проводке этой оперции, записываете операцию.
И не забудьте, что если Вы меняете в проводке субконто, по которому делали отбор, то выборка сбивается, в таком случае лучше сначала сформировать таблицу значений с перечнем проводок/операций, а потом уже во второй фазе менять их.
--------- Мирный атом в КАЖДЫЙ дом!
Ответ отправил: Elric (статус: Специалист)
Ответ отправлен: 03.02.2007, 00:26
Отвечает: BigHard
Здравствуйте, Arkadiy Karanskiy!
Попробуйте сделать немного иначе:
По проводке находите документ, которым она создана и в этом документе заполняйте необходимые реквизиты и перепроводите его.
--------- Чем отличается чайник от программиста: У чайника в одном килобайте 1000 байт, а у программиста в одном километре 1024 метра
Ответ отправил: BigHard (статус: 1-ый класс)
Ответ отправлен: 05.02.2007, 06:14