helpf.pro
Регистрация

v8: Работа с датой/

Ermak
06.10.2011 16:35Прочитано: 2143
Подскажите пожалуйста как в запросе сделать, чтобы при выборе даты (например 06.10.11) открывался документ выбранной даты (06.10.11)

Вот такой запрос

Код 1C v 8.2 УП
 Запрос.Текст = "ВЫБРАТЬ
| ПоступлениеНаРасчетныйСчет.СуммаДокумента,
| ПоступлениеНаРасчетныйСчет.СубконтоКт2,
| ПоступлениеНаРасчетныйСчет.СубконтоКт3,
| ПоступлениеНаРасчетныйСчет.ВидОперации,
| ПоступлениеНаРасчетныйСчет.СтатьяДвиженияДенежныхСредств,
| ПоступлениеНаРасчетныйСчет.СчетОрганизации,
| ПоступлениеНаРасчетныйСчет.НазначениеПлатежа,
| ПоступлениеНаРасчетныйСчет.Ссылка
|ИЗ
| Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет
|ГДЕ
| ПоступлениеНаРасчетныйСчет.Дата МЕЖДУ &Дата1 И &Дата2
| И ПоступлениеНаРасчетныйСчет.СчетУчетаРасчетовСКонтрагентом = &Счет
| И ПоступлениеНаРасчетныйСчет.ВидОперации = &ВидОперации
| И ПоступлениеНаРасчетныйСчет.СубконтоКт1 = &Филиал
| И ПоступлениеНаРасчетныйСчет.Проведен = ИСТИНА
| И ПоступлениеНаРасчетныйСчет.СчетОрганизации = &БанковскийСчет
| И ПоступлениеНаРасчетныйСчет.РасшифровкаПлатежа.СтатьяДвиженияДенежныхСредств = &СтатьяДвиженияДенежныхСредств";


Но тут когда выбираешь нужную дату, документ открывает дату текущего периода (выбрал 04.10.11, открывает 06.10.11)
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
06.10.2011 16:53Ответ № 1
(0) Ermak, поидее на что щелкаешь то и открывается
и выбираешь ты не дату а период, пиши подробнее проблему
Ermak
06.10.2011 18:40Ответ № 2
Выбрал я период

title

Нажимаю выполнить он открывает мне документ, а в документе дата стоит текущая, как сделать чтобы стояла которую выбрал в обработки
Ermak
10.10.2011 08:26Ответ № 3
как исправить?
Marfeus
10.10.2011 11:11Ответ № 4
по идее в &Дата2 у тебя передаеться текущая дата. Ищи в коде
Код 1C v 8.х
 Запрос.УстановитьПараметр("Дата2",ТекущаяДата())   
и свяжи со второй датой
E_Migachev
10.10.2011 11:20Ответ № 5
(3) Ermak, покажи весь код, а то гадаем на кофейной гуще!
Ermak
10.10.2011 15:26Ответ № 6
Вот

Код 1C v 8.2 УП
 Процедура Сформировать(НачПериода,КонПериода,Филиал,Организация,БанковскийСчет,СтатьяДвиженияДенежныхСредств) Экспорт
КонПериода=КонецДня(КонПериода);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПоступлениеНаРасчетныйСчет.СуммаДокумента,
| ПоступлениеНаРасчетныйСчет.СубконтоКт2,
| ПоступлениеНаРасчетныйСчет.СубконтоКт3,
| ПоступлениеНаРасчетныйСчет.ВидОперации,
| ПоступлениеНаРасчетныйСчет.СтатьяДвиженияДенежныхСредств,
| ПоступлениеНаРасчетныйСчет.СчетОрганизации,
| ПоступлениеНаРасчетныйСчет.НазначениеПлатежа,
| ПоступлениеНаРасчетныйСчет.Ссылка,
| ПоступлениеНаРасчетныйСчет.Дата
|ИЗ
| Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет
|ГДЕ
| ПоступлениеНаРасчетныйСчет.Дата МЕЖДУ &Дата1 И &Дата2
| И ПоступлениеНаРасчетныйСчет.СчетУчетаРасчетовСКонтрагентом = &Счет
| И ПоступлениеНаРасчетныйСчет.ВидОперации = &ВидОперации
| И ПоступлениеНаРасчетныйСчет.СубконтоКт1 = &Филиал
| И ПоступлениеНаРасчетныйСчет.Проведен = ИСТИНА
| И ПоступлениеНаРасчетныйСчет.СчетОрганизации = &БанковскийСчет
| И ПоступлениеНаРасчетныйСчет.РасшифровкаПлатежа.СтатьяДвиженияДенежныхСредств = &СтатьяДвиженияДенежныхСредств";
Запрос.УстановитьПараметр("Дата1",НачПериода);
Запрос.УстановитьПараметр("Дата2",КонПериода);
Запрос.УстановитьПараметр("Счет",ПланыСчетов.Хозрасчетный.РасчетыПоТекущимОперациям);
//Запрос.УстановитьПараметр("ВидОперации",Перечисления.ВидыОперацийПоступлениеБезналичныхДенежныхСредств.ПрочееПоступлениеБезналичныхДенежныхСредств);
Запрос.УстановитьПараметр("ВидОперации",Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ПрочееПоступление);

Запрос.УстановитьПараметр("Филиал",Филиал);
Запрос.УстановитьПараметр("БанковскийСчет",БанковскийСчет);
Запрос.УстановитьПараметр("СтатьяДвиженияДенежныхСредств",СтатьяДвиженияДенежныхСредств);
Табл = Запрос.Выполнить().Выгрузить();
//Табл.ВыбратьСтроку();

//Создаем документ
Док = Документы.АвизоПрочееИсходящее.СоздатьДокумент();
Док.Дата = КонецДня(КонПериода);
//Док.ВидДвижения = Перечисления.ТипыДвиженийПоФилиалу.ВДебет79;
Валюта = Константы.ВалютаРегламентированногоУчета.Получить();
Док.Организация = Организация;
Док.СчетРасчетов=ПланыСчетов.Хозрасчетный.РасчетыПоТекущимОперациям;
Док.ОрганизацияПолучатель = Филиал;
Док.Ответственный = глЗначениеПеременной("глТекущийПользователь");
Для каждого стр из Табл Цикл
Ст = Док.ДанныеБух.Добавить();
Ст.ВидДвижения = Перечисления.ТипыДвиженийПоФилиалу.ВКредит79;
//Ст.ВидРасчетов = Перечисления.ВидыРасчетовПоФилиалам.Прием;
Ст.СчетУчета = ПланыСчетов.Хозрасчетный.РасчетныеСчета;
Ст.Субконто1 = стр.СчетОрганизации;
Ст.Субконто2 = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("000000006");//стр.Ссылка.СтатьяДвиженияДенежныхСредств;
Ст.Сумма = стр.СуммаДокумента;
Ст.СуммаНУ = стр.СуммаДокумента;
//Ст.Назначение = стр.НазначениеПлатежа;
//Ст.Назначение = стр.СчетОрганизации;
Ст.валюта = Валюта;
Ст.СубконтоД3 = Справочники.Показатели79.НайтиПоКоду("000000003");//стр.СубконтоКт3;
Ст.СодержаниеПроводки = Стр.НазначениеПлатежа;
КонецЦикла;
Док.Дата=ТекущаяДата();
Док.Записать(РежимЗаписиДокумента.Запись);
Док.ПолучитьФорму().Открыть();

Основание = Док.Ссылка;
Док1 = Документы.АвизоПрочееВходящее.СоздатьДокумент();

ПараметрыДокументаОснования = ОбщегоНазначения.СформироватьСтруктуруШапкиДокумента(Основание);
Док1.ДокументОснование = ПараметрыДокументаОснования.Ссылка;

Док1.СчетРасчетов = ПараметрыДокументаОснования.СчетРасчетов;
Док1.Организация = ПараметрыДокументаОснования.ОрганизацияПолучатель;
Док1.ОрганизацияОтправитель = ПараметрыДокументаОснования.Организация;
Док1.НомерВходящегоДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(ПараметрыДокументаОснования);
Док1.ДатаВходящегоДокумента = ПараметрыДокументаОснования.Дата;
Док1.Ответственный = глЗначениеПеременной("глТекущийПользователь");
Док1.ВидВзаиморасчетов79 = Справочники.Показатели79.НайтиПоКоду("000000003");

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Док1.ДокументОснование);
Запрос.Текст = "ВЫБРАТЬ
| СчетУчета,
| Субконто1,
| Субконто2,
| Субконто3,
| СубконтоД3,
| Сумма как СуммаКТ,
| СуммаНУ,
| СуммаПР,
| СуммаВР,
| СуммаКТ как Сумма,
| Количество,
| Валюта,
| ВалютнаяСумма,
| СодержаниеПроводки
|ИЗ
| Документ.АвизоПрочееИсходящее.ДанныеБух КАК АвизоИсходящее
|
|ГДЕ
| АвизоИсходящее.Ссылка = &Ссылка";

Док1.ДанныеБух.Загрузить(Запрос.Выполнить().Выгрузить());
Док1.Дата=ТекущаяДата();
Док1.Записать();
Док1.ПолучитьФорму().Открыть();

КонецПроцедуры
E_Migachev
10.10.2011 16:12Ответ № 7
после цикла у тебя стоит Док.Дата=ТекущаяДата(); - вот он тебе и ставит текущую дату
Ermak
11.10.2011 08:51Ответ № 8
(7) E_Migachev, А как исправить?
E_Migachev
11.10.2011 10:42Ответ № 9
убрать эту строку и тогда будет ставить дату окончания выбранного периода
Изменено 11.10.11 10:43:05
Ermak
11.10.2011 14:13Ответ № 10
(9) E_Migachev, Спасибо большое
Ermak
11.10.2011 14:13Ответ № 11
Вопрос закрыт!
Ermak
12.10.2011 08:18Ответ № 12
Появился еще одна проблема. При формировании открывается новый документ "АвизоПрочееВходящее", дату он ставит текущую , т.к документ новый, как сделать чтобы он дату ставил когда туже которую я выбираю.

title
E_Migachev
12.10.2011 10:24Ответ № 13
(12) Ermak, а после запроса по авизо у тебя опять стоит Док1.Дата=ТекущаяДата(); - замени на Док1.Дата = КонецДня(КонПериода);
Ermak
12.10.2011 14:09Ответ № 14
Спасибо!
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.