Имя: Пароль:
1C
1С v8
Формирование ветсправок
0 Ленулькин
 
28.08.13
09:19
Помогите пожалуйста написать простой отчет по ветспракам! Чтобы при выборе даты формировалась табличка,
Документ
Сумма
Контагент
Фирма
АдресдОставки
Грузополуч
Экспедитор
Спасибо.
Или подскажите с чего начать?
1 Wobland
 
28.08.13
09:20
подсказываю. файл - новый - отчёт
2 Wobland
 
28.08.13
09:22
уважаемые гуру! помогите сварить нехитрый суп с мясом. чтобы были ингредиенты:
мясо, капуста, картошка, соль, вода, макароны, рис
заранее спасибо!
3 Ленулькин
 
28.08.13
13:36
ну в чем Вы правы!
4 Ленулькин
 
28.08.13
13:37
Процедура КнопкаВыполнитьНажатие(Кнопка)
Если ПустаяСтрока(ПолеВвода) Тогда
  Предупреждение("слово для поиска - ВЕТ");
  Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =  "
  |Выбрать
  | ЗаказПокупателя.Ссылка
  |ИЗ
  |Документ.ЗаказПокупателя КАК ЗаказПокупателя
  |
  |ГДЕ
  |ЗаказПокупателя.Дата МЕЖДУ &НачПериода И &КонПериода
  |И(ЗаказПокупателя.Комментарий.ВетСправка = &Истина) ИЛИ (ЗакаПокупателя.Контрагент.ГоловнойКонтрагент В(&СписокКонтр))
  | И ((ЗаказПокупателя.Контрагент.ТочкаДляВетСправки = (&ПустаяТочкаДляВетСправки))
  |СГРУППИРОВАТЬ ПО
  | ЗаказПокупателя.Ссылка
  |
  |УПОРЯДОЧИТЬ ПО
  |ЗаказПокупателя.Дата";

Запрос.УстановитьПараметр("Усл","%"+ПолеВвода+"%");
Запрос.УстановитьПараметр("НачПериода",НачПериода);
Запрос.УстановитьПараметр("КонПериода",КонПериода);
Запрос.УстановитьПараметр("Истина", Истина);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
    ТЗ.Очистить();
Пока Выборка.Следующий() Цикл
  НоваяСтрока = ТЗ.Добавить();
  НоваяСтрока.Документ = Выборка.Ссылка;
  НоваяСтрока.КонтрАгент = Выборка.Ссылка.Контрагент;
  НоваяСтрока.Адрес = Выборка.Ссылка.АдресДоставки;
  НоваяСтрока.Организация = Выборка.Ссылка.Организация;
  НоваяСтрока.Экспедитор = Выборка.Ссылка.Экспедитор;
  НоваяСтрока.Сумма = Выборка.Ссылка.СуммаДокумента;
КонецЦикла;
КонецПроцедуры
Процедура ВыбПериодНажатие(Элемент)
НастройкаПериода = Новый НастройкаПериода;
НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода)));
НастройкаПериода.РедактироватьКакИнтервал = Истина;
НастройкаПериода.РедактироватьКакПериод = Истина;
НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
Если НастройкаПериода.Редактировать() Тогда
  НачПериода = НастройкаПериода.ПолучитьДатуНачала();
  КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
КонецЕсли;
КонецПроцедуры

Процедура ТЗ(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекСтрока = ЭлементыФормы.ТЗ.ТекущаяСтрока;
Если ТекСтрока <> Неопределено Тогда
  ФормаЭлемента = ТекСтрока.Документ.Ссылка.ПолучитьФорму();
  ФормаЭлемента.ОткрытьМодально();
КонецЕсли;
КонецПроцедуры
НачПериода = ТекущаяДата();
КонПериода = ТекущаяДата();
//Если ПустаяСтрока(ПолеВвода) Тогда
// Предупреждение("Нет слова для поиска");
// Возврат;
//КонецЕсли;
//Запрос = Новый Запрос;
//Запрос.Текст =  "
//|Выбрать
//|ЗаказПокупателя.Ссылка
//|ИЗ
//|Документ.ЗаказПокупателя Как ЗаказПокупателя,
//|ГДЕ
//|ЗаказПокупателя.Дата МЕЖДУ &НачПериода И &КонПериода
//|СГРУППИРОВАТЬ ПО
//|ЗаказПокупателя.ССылка
//|
//|УПОРЯДОЧИТЬ ПО
//|ЗаказПокупателя.Дата
//Запрос.УстановитьПараметр("Усл","%"+ПолеВвода+"%");
//Запрос.УстановитьПараметр("НачПериода",КонПериода);
//Запрос.УстановитьПараметр("КонПериода",КонПериода);
//Выборка = Запрос.Выполнить().Выбрать();
//ТЗ.Очистить();
//Пока Выборка.Следующий() Цикл
// НоваяСтрока = Состав.Добавить();
// НоваяСтрока.Документ = Выборка.Ссылка;
//КонецЦикла;


Подскажите почему ошибка выходит
"В поле введены некоректные данные" Продолжить? Нажимаю "Да" и все больше ничего не происходит( Что именно не корректно?

Никак не могу сделать обработку
5 Wobland
 
28.08.13
13:39
(4) данные некорректны
6 Wobland
 
28.08.13
13:39
а на экзамене за отчёт на данных документов ставят на горох
7 Wobland
 
28.08.13
13:40
а ещё запрос сам умеет выгружаться в ТЗ. короче, всё выкинуть, сделать правильно
8 Ленулькин
 
28.08.13
13:40
очень остроумно, вы бы лучше помогли объяснили, если не хотите тогда вообще лучше ничего не писать
9 Wobland
 
28.08.13
13:41
(8) а ты спрашивай, не стесняйся. делать всё мне пока лениво
10 Галахад
 
гуру
28.08.13
13:42
Поле ввода точно строка?
11 Ненавижу 1С
 
гуру
28.08.13
13:42
(8) а фото где?
12 Ленулькин
 
28.08.13
13:44
как здесь фото вставить?
13 Wobland
 
28.08.13
13:45
(12) тыц сюда: Ленулькин
14 Ленулькин
 
28.08.13
13:46
да действительно поле ввода была не строка, исправила теперь выдает другую ошибку

{Форма.Форма(28)}: Ошибка при вызове метода контекста (Выполнить): {(11, 1)}: Ожидается выражение ")"
<<?>>СГРУППИРОВАТЬ ПО
    Результат = Запрос.Выполнить();
Скажите что значит? Как дальше?
15 Wobland
 
28.08.13
13:47
(14) это значит, что у тебя запрос синтаксически неверне
16 Wobland
 
28.08.13
13:48
фото супер
17 Ленулькин
 
28.08.13
13:48
фото загрузила как го сюда вставить?
18 Ленулькин
 
28.08.13
13:48
ах видимо уже дошло, конечно супре, лучше не бывает
19 mulmulya
 
28.08.13
13:50
|И(ЗаказПокупателя.Комментарий.ВетСправка = &Истина) ИЛИ (ЗакаПокупателя.Контрагент.ГоловнойКонтрагент В(&СписокКонтр))
  | И ((ЗаказПокупателя.Контрагент.ТочкаДляВетСправки = (&ПустаяТочкаДляВетСправки))

со скобочками непорядок, вот и ругается
20 mulmulya
 
28.08.13
13:52
А вообще им твое фото надо, а не формы отчета)))
21 Ленулькин
 
28.08.13
13:54
да изначально было понятно, не ужели я еще буду фото свое выкладывать пусть на отчет любуются!
22 Wobland
 
28.08.13
13:55
(21) уже любуемся. тему можно закрывать
23 Ненавижу 1С
 
гуру
28.08.13
13:55
(21) нет нормального фота,нет нормального решения проблемы
24 mulmulya
 
28.08.13
13:56
вместо

| И ((ЗаказПокупателя.Контрагент.ТочкаДляВетСправки = (&ПустаяТочкаДляВетСправки))

надо

| И (ЗаказПокупателя.Контрагент.ТочкаДляВетСправки В (&ПустаяТочкаДляВетСправки))

или

| И (ЗаказПокупателя.Контрагент.ТочкаДляВетСправки = &ПустаяТочкаДляВетСправки)

смотря что это за параметр, что-то я в коде не нашла его
25 Ленулькин
 
28.08.13
14:05
вот у меня получился запрос
Запрос.УстановитьПараметр("Усл","%"+ПолеВвода+"%");
    Запрос.УстановитьПараметр("НачПериода",НачПериода);
    Запрос.УстановитьПараметр("КонПериода",КонПериода);
    //Запрос.УстановитьПараметр("Истина", Истина);
    Запрос.УстановитьПараметр("СписокКонтр", Справочники.Контрагенты.НайтиПоКоду("63764"));

    СписокКонтр = Новый СписокЗначений;
    //МПР
    СписокКонтр.Добавить(Справочники.Контрагенты.НайтиПоКоду("02254"));
    //ШЕД
    СписокКонтр.Добавить(Справочники.Контрагенты.НайтиПоКоду("02202"));
    //Магнит
    СписокКонтр.Добавить(Справочники.Контрагенты.НайтиПоКоду("02069"));
    //Самарский продукт (понедельник и четверг)
    СписокКонтр.Добавить(Справочники.Контрагенты.НайтиПоКоду("01631"));
    //Омега-97    
    СписокКонтр.Добавить(Справочники.Контрагенты.НайтиПоКоду("01553"));
    //КОпейка (одна справка на головное)
    СписокКонтр.Добавить(Справочники.Контрагенты.НайтиПоКоду("01614"));
    
    Запрос.УстановитьПараметр("СписокКонтр", СписокКонтр);    
    Запрос.УстановитьПараметр("ПустаяТочкаДляВетСправки", Справочники.Контрагенты.ПустаяСсылка());
    Результат = Запрос.Выполнить();
26 mulmulya
 
28.08.13
14:07
(25) в чем проблема?
27 Wobland
 
28.08.13
14:08
(26) она хвастается
(25) >Запрос.УстановитьПараметр("Истина", Истина);
мне нравится, продолжай
28 Ленулькин
 
28.08.13
14:09
{Форма.Форма(46)}: Ошибка при вызове метода контекста (Выполнить): {(9, 31)}: Поле не найдено "ЗаказПокупателя.Комментарий.ВетСправка"
И(ЗаказПокупателя.Комментарий.<<?>>ВетСправка = Истина) ИЛИ (ЗакаПокупателя.Контрагент.ГоловнойКонтрагент В(&СписокКонтр))
    Результат = Запрос.Выполнить();
Вот в чем!
29 Wobland
 
28.08.13
14:10
(28) может, и правда нет такого поля у комментария?
30 mulmulya
 
28.08.13
14:11
(28) А комментарий это реквизит документа? И значение у него строка?
31 mulmulya
 
28.08.13
14:12
(30) не значение, а тип то есть
32 Wobland
 
28.08.13
14:13
очень интересно понять, что девушка имела в виду, когда сочиняла это. не могу осилить
33 mulmulya
 
28.08.13
14:15
А вот значение, скорее всего, "ВетСправка"

наверное так:

И(ЗаказПокупателя.Комментарий = ""ВетСправка"") ИЛИ (ЗакаПокупателя.Контрагент.ГоловнойКонтрагент В(&СписокКонтр))

а это лучше убрать:

Запрос.УстановитьПараметр("Истина", Истина);
34 Ленулькин
 
28.08.13
14:43
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Если ПустаяСтрока(ПолеВвода) Тогда
        Предупреждение("Нет слова для поиска");
        Возврат;
    КонецЕсли;
    Запрос = Новый Запрос;
    Запрос.Текст =  "
        |Выбрать
        | ЗаказПокупателя.Ссылка
        |ИЗ
        |Документ.ЗаказПокупателя КАК ЗакаПокупателя
        |
        |ГДЕ
        |ЗаказПокупателя.Дата МЕЖДУ &НачПериода И &КонПериода
        |И(ЗаказПокупателя.Сделка.ВетСправка = Истина) ИЛИ (ЗаказПокупателя.Контрагент.ГоловнойКонтрагент В(&СписокКонтр))
        |СГРУППИРОВАТЬ ПО  
        |    ЗаказПокупателя.Ссылка
        |
        |УПОРЯДОЧИТЬ ПО        
        | ЗаказПокупателя.Дата";    
    
    Запрос.УстановитьПараметр("Усл","%"+ПолеВвода+"%");
    Запрос.УстановитьПараметр("НачПериода",НачалоДня(НачПериода));
    Запрос.УстановитьПараметр("КонПериода",КонецДня(КонПериода));
    Запрос.УстановитьПараметр("СписокКонтр", Справочники.Контрагенты.НайтиПоКоду("63764"));

    СписокКонтр = Новый СписокЗначений;
    //МПР
    СписокКонтр.Добавить(Справочники.Контрагенты.НайтиПоКоду("02254"));
    //ШЕД
    СписокКонтр.Добавить(Справочники.Контрагенты.НайтиПоКоду("02202"));
    //Магнит
    СписокКонтр.Добавить(Справочники.Контрагенты.НайтиПоКоду("02069"));
    //Самарский продукт (понедельник и четверг)
    СписокКонтр.Добавить(Справочники.Контрагенты.НайтиПоКоду("01631"));
    //Омега-97    
    СписокКонтр.Добавить(Справочники.Контрагенты.НайтиПоКоду("01553"));
    //КОпейка (одна справка на головное)
    СписокКонтр.Добавить(Справочники.Контрагенты.НайтиПоКоду("01614"));
    
    Запрос.УстановитьПараметр("СписокКонтр", СписокКонтр);    
    Результат = Запрос.Выполнить();
    
    ВыборкаДетали = Результат.Выбрать();
    ТЗ.Очистить();
  
    Пока ВыборкаДетали.Следующий() Цикл
        НоваяСтрока = ТЗ.Добавить();
        НоваяСтрока.Документ = ВыборкаДетали.Ссылка;
        НоваяСтрока.КонтрАгент = ВыборкаДетали.Ссылка.Контрагент;
        НоваяСтрока.Адрес = ВыборкаДетали.Ссылка.АдресДоставки;
        НоваяСтрока.Организация = ВыборкаДетали.Ссылка.Организация;
        НоваяСтрока.Экспедитор = ВыборкаДетали.Ссылка.ФизическиеЛица;
        НоваяСтрока.Сумма = ВыборкаДетали.Ссылка.СуммаДокумента;
    КонецЦикла;
КонецПроцедуры

Процедура ВыбПериодНажатие(Элемент)
    НастройкаПериода = Новый НастройкаПериода;
    НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода)));
    НастройкаПериода.РедактироватьКакИнтервал = Истина;
    НастройкаПериода.РедактироватьКакПериод = Истина;
    НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
    Если НастройкаПериода.Редактировать() Тогда
        НачПериода = НастройкаПериода.ПолучитьДатуНачала();
        КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
    КонецЕсли;
КонецПроцедуры


Процедура ТЗ(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ТекСтрока = ЭлементыФормы.ТЗ.ТекущаяСтрока;
    Если ТекСтрока <> Неопределено Тогда
        ФормаЭлемента = ТекСтрока.Документ.Ссылка.ПолучитьФорму();
        ФормаЭлемента.ОткрытьМодально();
    КонецЕсли;    
КонецПроцедуры

НачПериода = ТекущаяДата();
КонПериода = ТекущаяДата();


У меня как всегда опять ошибка!
{Форма.Форма(43)}: Ошибка при вызове метода контекста (Выполнить): {(8, 1)}: Поле не найдено "ЗаказПокупателя.Дата"
<<?>>ЗаказПокупателя.Дата МЕЖДУ &НачПериода И &КонПериода
    Результат = Запрос.Выполнить();
35 mulmulya
 
28.08.13
14:50
|Документ.ЗаказПокупателя КАК ЗакаПокупателя

ничего не настораживает?
36 Ленулькин
 
28.08.13
14:59
Настораживает моя не внимательность. Спасибо сейчас попробую
37 Ленулькин
 
28.08.13
15:06
{Форма.Форма(56)}: Поле объекта не обнаружено (Экспедитор)
  НоваяСтрока.Экспедитор = ВыборкаДетали.Ссылка.Экспедитор;

тип: СправочникСсылка.ФизическиеЛица
38 Wobland
 
28.08.13
15:24
возьми уже СКД и перестань заниматься ерундой
39 Ленулькин
 
28.08.13
15:39
а без системы компоновки данных нельзя это все закончить!Я уже 2 день мучаюсь, мне хотя бы эт сначала закончить чтобы к СКД изучение приступить(
40 Enders
 
28.08.13
15:49
(39) Я так предполагаю что вы учитесь или уже работаете?
Если учитесь, то какая разница сколько времени потратите, главное понимание.
Да и видео-уроки какие-нить бы посмотрели, книжки почитали...
А если работаете... то...всё равно сначала б посмотрели, почитали, поняли, а только потом делали.