перебор документов по дате

  • Автор темы Stim
  • Дата начала
S

Stim

Гость
#1
Подскажите пож-та алгоритм перебора документов по дате.. Как подступиться к проблеме этой7 нужно чтобы программа сверяла дату документа с заданым интервалов времени(например с 1.01.07 по 31.02.07). как задать этот интервал можно? если кто нибудь знает, подскажите, а то идей пока конкретных нету..
 

Zab

Well-Known Member
07.08.2006
583
0
Менск
#2
Посмотри метод ВыбратьДокументы(<Дата1>,<Дата2>) помоему тут понятно и без пояснений.
 
S

Stim

Гость
#3
спасибо, сейчас попробую

вопрос только, как эти документы перебрать?

ВыбратьДокументы(дата1,дата2);
Пока Док.ПолучитьДокумент()=1 Цикл
//тело программы
КонецЦикла;
будет открываться вся выборка в заданых датах?что-то легко прям..
 
S

Stim

Гость
#4
Код:
Процедура ОК()
Перем ДатаДок;
ы=0;
Док=СоздатьОбъект("Документ"); 
Док.ВыбратьДокументы(НачДата,КонДата);
Пока Док.ПолучитьДокумент() > 0 Цикл
ТекДок=Док.ТекущийДокумент();
ы=ы+1;
Сообщить("датадок" +ТекДок.ДатаДок +ы +ТекДок.Модифицированность);

КонецЦикла;	
КонецПроцедуры;
Выдает ошибку
Сообщить("датадок" +ТекДок.ДатаДок +ы +ТекДок.Модифицированность);
{D:\1C\EXTFORMS\СЧЕТФАКТУРА.ERT(16)}: Поле агрегатного объекта не обнаружено (Модифицированность)

Не подскажите в чем дело?
 
P

Pro

Гость
#5
Модифицированность работает только непосредственно из формы документа... imho
 
J

jj_mail

Гость
#6
к тому же - это еще и функция Модифицированность() B)
 
S

Stim

Гость
#7
блин а еще 1 проблемка возникла, которую ввиду своей неопытности немогу решить :
как закрыть форму ? т.е ее можно открыть строчкой:
Код:
ОткрытьФорму("Документ." + "СчетФактура", , Док.ТекущийДокумент());
//тек.док берется из выборки док-ов по датам
когда открывается форма, она создаёт счетфактуру для каждого док-та, и после этого ее нужно закрыть и сохранить док-т, который она создаёт. как это можно сделать ?
 
S

Stim

Гость
#9
суть работы программы:
перебор документов по заданым датам, для каждого док-та создается счетфактура или открывается если она создана. все это делается формой, которую я немогу закрыть програмно.

и еще обьясните кому нетрудно разницу между открыть форму и открытьформумодально
 

Zab

Well-Known Member
07.08.2006
583
0
Менск
#10
Форму документа открывать не обязательно, для того, чтобы изменить или создать документ. Хуже того, 1С не позволяет программно заполнить табличную часть документа, ч-з контекст формы. (извращения в счет не берем.)
Модально, открытая форма останавливает выполнение модуля, который ее открыл.
Не модальная открывается, и выполнение идет дальше.
Я надеюсь, ты в курсе, что при открытой модальной форме, ты не сможешь переключиться на другое окошко.

Для закрытия формы, смотри Форма.Закрыть(<ЗапрСохр>) или атрибут СтрокаДействийФормы
 
S

Stim

Гость
#11
как же тогда решить проблему : Есть документ, который создает счетфактуру для документа реализация товара...нужен внешнией отчет, который будет перебериать документы в заданых датах,и создавать счетфактуру для них, если а.Это документ "реализация товара". б.счетфактура для тек.док-та несоздана.



Что смог сделать я :
Проверка названия док-та "реализация товара"
Проверка на существование счетфакуты для текдока есть
Перебор док-ов есть


как видно это совсем, мало..пытаюсь разобраться, рад всем советам...
Нужен метод, совет, как использовать уже готовый док-т , который создает счетфактуру эту...а потом в цикл перебора док-та вставить и все... свиду просто, а не получается, или подход к решению этой проблемы неправильный?
 

Zab

Well-Known Member
07.08.2006
583
0
Менск
#12
Код:
Процедура СоздатьСФ()
Док=СоздатьОбъект("Документ.СчетФактура"); 
Док.Новый();
// заполнение реквизитов дока.
Док.Записать(); 
КонецПроцедуры
помогло? :(
 
S

Stim

Гость
#13
ага. )) а вот вопрос еще 1. если это все мне нужно реализовать во внешнем отчете, что изменится в синтаксисе или еще в чем-нибудь. ?
 
S

Stim

Гость
#14
вот непонятно например, в реквизитах шапки документа есть такой реквизит : тип , имеющий значение перечисление.типысчетов фактур.. так же в модуле этого же документа есть строчка
Код:
Если Тип = Перечисление.ТипыСчетовФактур.Отгрузка Тогда
как эта же строчка будет выглядеть во внешнемочтете(обработке)
 
J

jj_mail

Гость
#15
Если Док.Тип = Перечисление.ТипыСчетовФактур.Отгрузка Тогда
 
S

Stim

Гость
#16
Ура. Программа сделал. Спасибо всем, кто помог.