Вопрос № 45331: Добрый день уважаемые эксперты!
Подскажите , пожалуиста, как проще выбрать подчиненный документ определенного вида? Конкретно, при выбранном документе "ПоступлениеТМЦ" выбрать подчиненную ему счет-фактуру?...Вопрос № 45354: Добрый день уважаемые эксперты. У меня возникла такая ситуация. Я вызываю по кнопке обработку из документа. 1) как в обработке получить дату и номер текущего документа 2) и записать данные, №, дату, название в новый справочник. Спасибо....Вопрос
№ 45367: Здравствуйте, эксперты!
Существует ли в 1с возможность выгрузить отчет в Word?
Каким образом это можно сделать?...Вопрос № 45419: Уважаемые господа эксперты! Есть ли возможность изменить дату и врем проведеннного документа из модуля этого документа?...
Вопрос № 45.331
Добрый день уважаемые эксперты!
Подскажите , пожалуиста, как проще выбрать подчиненный документ определенного вида? Конкретно, при выбранном документе "ПоступлениеТМЦ" выбрать подчиненную ему счет-фактуру?
Только методом перебора. Специальной процедуры/функции/метода для выбора подчиненного документа определенного вида не существует.
Как вариант, можно запрос по счетам-фактурам написать, но в нем придется указать период, и притом не факт что запрос сработает быстрее.
--------- Мирный атом в каждый дом
Ответ отправил: Elric (статус: Студент)
Ответ отправлен: 06.06.2006, 09:11
Отвечает: Ovr1970
Здравствуйте, Станислав Морозов!
Обячно, так как во вложении
Приложение:
Ответ отправил: Ovr1970 (статус: Студент)
Ответ отправлен: 06.06.2006, 10:17
Отвечает: Краюшкин Игорь Валерьевич
Здравствуйте, Станислав Морозов!
Пример приведен для выборки счетов-фактур прямо из документа ПоступлениеТМЦ
ТекСФ = "";
ДокПодч = СоздатьОбъект("Документ");
ДокПодч.ВыбратьПодчиненныеДокументы(,,ТекущийДокумент());
Пока ДокПодч.ПолучитьДокумент()=1 Цикл
Если ДокПодч.Вид() = "СчетФактураПолученный" Тогда
ТекСФ = ДокПодч.ТекущийДокумент();
КонецЕсли;
КонецЦикла;
Если ПустоеЗначение(ТекСФ) = 1 Тогда
Сообщить("Счет-фактуры не обнаружены");
Иначе
Сообщить("Найден документ: " + ТекСФ);
КонецЕсли;
Ответ отправил: Краюшкин Игорь Валерьевич (статус: 2-ой класс)
Ответ отправлен: 06.06.2006, 18:56 Оценка за ответ: 5
Вопрос № 45.354
Добрый день уважаемые эксперты. У меня возникла такая ситуация. Я вызываю по кнопке обработку из документа. 1) как в обработке получить дату и номер текущего документа 2) и записать данные, №, дату, название в новый справочник. Спасибо.
Отправлен: 06.06.2006, 10:57
Вопрос задал: NovInNik (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, NovInNik!
Когда вызываете обработку, передайте ей параметр.
Сп=СоздатьОбъект("СписокЗначений");
Сп.Установить("Дата",ДатаДок);
Сп.Установить("Номер",НомерДок)
Сп.Установить("Конт",Контекст)
ОткрытьФорму("Обработка...",Сп)
А в обработке нужно написать
Сп=Форма.Параметр;
Конт=Сп.Получить("Конт");
Конт.НомерДок=Номер;
Конт.Контрагент=Контрик
Отвечает: Лазурко Владимир
Здравствуйте, NovInNik!
Чтобы из обработки получить реквизиты вызвавшего её документа, нужно в эту обработку передать контекст документа через параметр.
В формулу кнопки пишешь что-то вроде
----
ОткрытьФормуМодально("Обработка.МояОбработка",Контекст)
----
в модуле обработки что-то вроде
----
// ===============================
Процедура ПриОткрытии()
Форма.ПанельИнструментов(0); //выключает в интерфейсе панель инструментов
КонтекстДокумента = Форма.Параметр; /// именно это чтение параметра,
// в нашем случае контекст вызвавшего документа
Если ТипЗначенияСтр(КонтекстДокумента) <> "ГрупповойКонтекст" Тогда
Предупреждение("Обработка вызывается только из формы документов!");
СтатусВозврата(0);
Возврат;
КонецЕсли;
////******************** первый пункт вопрса //////////////////
Сообщить("НомерДок - "+строка(КонтекстДокумента.ДатаДок));
Сообщить("НомерДок - "+строка(КонтекстДокумента.НомерДок));
// соответствено, вместо "Сообщить" пиши свои действия - заполняй переменные,
///**************** далее второй пункт вопроса ************
Спр = СоздатьОбъект("Справочник.МойСправочник");
Спр.Новый;
Спр.Наименование = Строка(КонтекстДокументаюВид())+" "+строка(КонтекстДОкумента.ДатаДок)+" "+КонтекстДОкумента.НомерДок);
Спр.РеквизитНомераДокумента = КонтекстДОкумента.НомерДок;
Спр.РеквизитДатыДокумента = КонтекстДОкумента.НомерДок;
Спр.РеквизитВидДокумента = КонтекстДОкумента.ПредставлениеВида();
КонецПроцедуры
----
Передача параметра в процедуре ПриОткрыти(), а дальнейшие действия можно запихнуть и в процедуру Сформировать().
--------- Доброе отношение к людям может изменить твою жизнь
Ответ отправил: Лазурко Владимир (статус: 2-ой класс)
Ответ отправлен: 07.06.2006, 22:41
Вопрос № 45.367
Здравствуйте, эксперты!
Существует ли в 1с возможность выгрузить отчет в Word?
Каким образом это можно сделать?
Отправлен: 06.06.2006, 12:48
Вопрос задала: Олеся (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ovr1970
Здравствуйте, Олеся!
Можно, через OLE
Контекст работы с Word нужно смотреть в справке по VBA
Приложение:
Ответ отправил: Ovr1970 (статус: Студент)
Ответ отправлен: 06.06.2006, 18:17 Оценка за ответ: 5
Вопрос № 45.419
Уважаемые господа эксперты! Есть ли возможность изменить дату и врем проведеннного документа из модуля этого документа?
Отправлен: 06.06.2006, 18:55
Вопрос задал: Warior (статус: 1-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Elric
Здравствуйте, Warior!
Нет, такой возможности нет (если речь именно о модуле документа, а не о модуле формы). Во время проведения документа замыкаются все таблицы связанные с этим процессом, нельзя не только изменить время/дату этого документа, но и, скажем, провести любой другой документ.
--------- Мирный атом в каждый дом
Ответ отправил: Elric (статус: Студент)
Ответ отправлен: 07.06.2006, 01:08 Оценка за ответ: 5
Отвечает: Gorus
Здравствуйте, Warior!
Дату и время можно изменить после проведения документа - создайте глобальную переменную, в которую записывайте ссылку на документ, который нужно изменить, и нужные дату и время. Далее поставить в глобальном модуле Обработку Ожидания на какую-то процедуру, в которой и производить изменения в документе (если ОбработкаОжидания уже назначена, лучше воспользуйтесь назначеной процедурой, т.к. установка нескольких обработок ожидания подтормаживает). Также поставте проверку на непустое значение переменной в ПриЗавершенииРаботыСистемы.
Правда при описаном подходе существует вероятность что в некоторых документах дата и время не изменятся (например при аварийном завершении работы 1С). Если нужна 100% уверенность в том, что данные изменены, нужно будет регистрировать изменения в самой базе (например добавить реквизит в документ, или создать справочник в который записывать документы, которые нужно изменить).
Ответ отправил: Gorus (статус: 1-ый класс)
Ответ отправлен: 07.06.2006, 09:45 Оценка за ответ: 4