![]() |
![]() |
|
Выбор периода во внешней обработке | ☑ | ||
---|---|---|---|---|
0
SmokingDoo
27.10.16
✎
23:06
|
Здравствуйте, помогите пожалуйста дураку третий день пытаюсь понять! Начал учиться программированию на 1С буквально неделю назад.
Создал внешнюю обработку. При нажатии на кнопку "Выполнить", из базы запрашиваются все выданные счёт-фактуры. И их дата и время документа, заменяются датой и временем документа основания (РеализацияТоваров). Добавил на форму два поля ввода. "НачПериода" и "КонПериода" с типом дата. В запросе добавил строку [code]|И СчетФактураВыданный.Дата МЕЖДУ НачПериода И КонПериода[/code] Выдаёт ошибку: [code]"Поле не найдено "НачПериода" И СчетФактураВыданный.Дата МЕЖДУ <<?>>НачПериода И КонПериода"[/code] Никак не могу понять разобраться в чём ошибка, уже психовать начал :-) Ибо понимаю что проблема в каких-то элементарных вещах. [code]Процедура СФВыданная(Кнопка) Запрос = Новый запрос; Запрос.Текст= "ВЫБРАТЬ | СчетФактураВыданный.Ссылка КАК Ссылка, | СчетФактураВыданный.Номер КАК Номер, | СчетФактураВыданный.Дата КАК Дата, | СчетФактураВыданный.ДокументОснование.Номер КАК ДокументОснованиеНомер, | СчетФактураВыданный.ДокументОснование.Дата КАК ДокументОснованиеДата, | СчетФактураВыданный.СуммаДокумента КАК СуммаДокумента |ИЗ | Документ.СчетФактураВыданный КАК СчетФактураВыданный |ГДЕ | НЕ СчетФактураВыданный.ПометкаУдаления | И СчетФактураВыданный.Дата МЕЖДУ НачПериода И КонПериода | |УПОРЯДОЧИТЬ ПО | Ссылка |АВТОУПОРЯДОЧИВАНИЕ"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.ДокументОснованиеДата=null Тогда Сообщить("В документе под номером " + Выборка.Номер + " от " +Выборка.Дата + " отсутствует запись основания" ); Иначе ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект(); ДокументОбъект.Дата = Выборка.ДокументОснованиеДата; ДокументОбъект.Записать(); //Сообщить("НомерСФ " + Выборка.Номер + " ДатаСФ " + Выборка.Дата + " Номер реализации " + Выборка.ДокументОснованиеНомер + " Дата реализации " + Выборка.ДокументОснованиеДата + " Сумма " + Выборка.СуммаДокумента); КонецЕсли; КонецЦикла; КонецПроцедуры [/code] |
|||
1
Кадош
27.10.16
✎
23:08
|
И СчетФактураВыданный.Дата МЕЖДУ &НачПериода И &КонПериода
Запрос.УстановитьПараметр("НачПериода ",НачПериода); |
|||
2
SmokingDoo
27.10.16
✎
23:08
|
Толстый клиент (Обычное приложение)
Простите, что-то я не разобрался как на форуме код размещать. Нужны теги [Code]? Или это делается автоматически? |
|||
3
Кадош
27.10.16
✎
23:11
|
Вот так делается период
http://screencast.com/t/6UKS7dMhOjMs |
|||
4
SmokingDoo
27.10.16
✎
23:23
|
Создал период на форме как показано в видео (Спасибо! буду знать где взять)
Добавил 2 строки после окончания запроса. Запрос.УстановитьПараметр("НачПериода ",НачПериода); Запрос.УстановитьПараметр("НачПериода ",КонПериода); Выводит ошибку: Не задано значение параметра "НачПериода" И СчетФактураВыданный.Дата МЕЖДУ <<?>>&НачПериода И &КонПериода Переношу их перед запросом. При сохранении обработки выдаёт: "Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("НачПериода ",НачПериода); (Проверка: Толстый клиент (обычное приложение))" Чтож я делаю не так? Ибо если не смогу понять это, то дальше изучать конфигурирование не имеет смысла :-( |
|||
5
Кадош
27.10.16
✎
23:26
|
давай весь код снова
|
|||
6
SmokingDoo
27.10.16
✎
23:26
|
Процедура СФВыданная(Кнопка) //
Запрос = Новый запрос; Запрос.Текст= "ВЫБРАТЬ | СчетФактураВыданный.Ссылка КАК Ссылка, | СчетФактураВыданный.Номер КАК Номер, | СчетФактураВыданный.Дата КАК Дата, | СчетФактураВыданный.ДокументОснование.Номер КАК ДокументОснованиеНомер, | СчетФактураВыданный.ДокументОснование.Дата КАК ДокументОснованиеДата, | СчетФактураВыданный.СуммаДокумента КАК СуммаДокумента |ИЗ | Документ.СчетФактураВыданный КАК СчетФактураВыданный |ГДЕ | НЕ СчетФактураВыданный.ПометкаУдаления | И СчетФактураВыданный.Дата МЕЖДУ &НачПериода И &КонПериода |УПОРЯДОЧИТЬ ПО | Ссылка |АВТОУПОРЯДОЧИВАНИЕ"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.ДокументОснованиеДата=null Тогда Сообщить("В документе под номером " + Выборка.Номер + " от " +Выборка.Дата + " отсутствует запись основания" ); Иначе ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект(); ДокументОбъект.Дата = Выборка.ДокументОснованиеДата; ДокументОбъект.Записать(); //Сообщить("НомерСФ " + Выборка.Номер + " ДатаСФ " + Выборка.Дата + " Номер реализации " + Выборка.ДокументОснованиеНомер + " Дата реализации " + Выборка.ДокументОснованиеДата + " Сумма " + Выборка.СуммаДокумента); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
7
SmokingDoo
27.10.16
✎
23:27
|
Простите, не пойму почему так код вставляется.
|
|||
8
Кадош
27.10.16
✎
23:32
|
(7) ты тот же (0) код скопипастил.
Запрос = Новый Запрос; Запрос.УстановитьПараметр("НачПериода ",НачПериода); Запрос.УстановитьПараметр("КонПериода ",КонецДня(КонПериода)); Запрос.Текст= "ВЫБРАТЬ | СчетФактураВыданный.Ссылка КАК Ссылка, | СчетФактураВыданный.Номер КАК Номер, | СчетФактураВыданный.Дата КАК Дата, | СчетФактураВыданный.ДокументОснование.Номер КАК ДокументОснованиеНомер, | СчетФактураВыданный.ДокументОснование.Дата КАК ДокументОснованиеДата, | СчетФактураВыданный.СуммаДокумента КАК СуммаДокумента |ИЗ | Документ.СчетФактураВыданный КАК СчетФактураВыданный |ГДЕ | НЕ СчетФактураВыданный.ПометкаУдаления | И СчетФактураВыданный.Дата МЕЖДУ &НачПериода И &КонПериода |УПОРЯДОЧИТЬ ПО | Ссылка |АВТОУПОРЯДОЧИВАНИЕ"; |
|||
9
SmokingDoo
27.10.16
✎
23:36
|
Форум почему то код на части.
Процедура СФВыданная(Кнопка) Запрос.УстановитьПараметр("НачПериода ",НачПериода); Запрос.УстановитьПараметр("НачПериода ",КонПериода); Запрос = Новый запрос; Запрос.Текст= "ВЫБРАТЬ | СчетФактураВыданный.Ссылка КАК Ссылка, | СчетФактураВыданный.Номер КАК Номер, | СчетФактураВыданный.Дата КАК Дата, | СчетФактураВыданный.ДокументОснование.Номер КАК ДокументОснованиеНомер, | СчетФактураВыданный.ДокументОснование.Дата КАК ДокументОснованиеДата, | СчетФактураВыданный.СуммаДокумента КАК СуммаДокумента |ИЗ | Документ.СчетФактураВыданный КАК СчетФактураВыданный |ГДЕ | НЕ СчетФактураВыданный.ПометкаУдаления | И СчетФактураВыданный.Дата МЕЖДУ &НачПериода И &КонПериода |УПОРЯДОЧИТЬ ПО | Ссылка |АВТОУПОРЯДОЧИВАНИЕ"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.ДокументОснованиеДата=null Тогда Сообщить("В документе под номером " + Выборка.Номер + " от " +Выборка.Дата + " отсутствует запись основания" ); Иначе ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект(); ДокументОбъект.Дата = Выборка.ДокументОснованиеДата; ДокументОбъект.Записать(); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
10
Кадош
27.10.16
✎
23:38
|
(9) бери мой код из (8)
|
|||
11
bootini
27.10.16
✎
23:39
|
Пробелы надо убрать
Тут: Запрос.УстановитьПараметр("НачПериода ",НачПериода); Запрос.УстановитьПараметр("НачПериода ",КонПериода); Правильно так: Запрос.УстановитьПараметр("НачПериода",НачПериода); Запрос.УстановитьПараметр("НачПериода",КонПериода); |
|||
12
bootini
27.10.16
✎
23:48
|
Тут ошибка,что сначала пытаешься установать параметры, а потом определяешь переменную "Запрос"
Запрос.УстановитьПараметр("НачПериода ",НачПериода); Запрос.УстановитьПараметр("НачПериода ",КонПериода); Запрос = Новый запрос; Если хочешь вначаля тогда ставь после определения переменной Запрос = Новый запрос; Запрос.УстановитьПараметр("НачПериода ",НачПериода); Запрос.УстановитьПараметр("НачПериода ",КонПериода); |
|||
13
bootini
27.10.16
✎
23:48
|
(12) без пробелов естественно "НачПериода"
|
|||
14
SmokingDoo
27.10.16
✎
23:54
|
(10) Кадош
(11) bootini Спасибо Вам большое добрые люди! Заработало! А самое главное понял зачем Запрос.УстановитьПараметр нужен :-) |
|||
15
Кадош
27.10.16
✎
23:55
|
(14) хор троекратно поет "Аллилуйа"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |