Имя: Пароль:
1C
1С v8
Получить Цену из регистра сведений и вставить ее на форму в таблицу в пункт Цена
, , ,
0 Dasvi
 
23.06.22
15:07
Всем Доброго Времени Суток!
Есть Форма в которой пользователь заполняет данные об отправке и перевозке товаров, При заполнении выберает Склады,организации и тд
В форме есть таблица, в которую можно добавлять товары, которые отправляются
В этой таблицы у товара есть: Наименование Количество Цена
так же в регистре сведений есть "ЦеныТоваровЕжедневные" это список с Перечислением Всех товаров
У каждого товара есть: Наименование Склад Цена Дата

Задача такая: При заполнении пользователем формы Организации, Даты, Склада и тд , когда он начинает добавлять в Таблицу на форме Товар
Автоматически добавлять его цену из РегистраСведений
По фильтру: Склад, Наименование, Дата

надеюсь все объяснил)
1 Fish
 
23.06.22
15:09
Запросом получаешь цену и выводишь её, куда тебе нужно.
2 Dasvi
 
23.06.22
15:09
(0) На данный момент написал вот это


СтандартнаяОбаботка = Ложь;
    СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
    НаименованиеВыбор = СтрокаТабличнойЧасти.Наименование;
    СкладВыбор = ЭлементыФормы.Склад;
    ДатаН = ЭлементыФормы.Дата;
    ПараметрыОтбора = Новый Структура;
        Отбор = Новый Структура;
        Отбор.Вставить("Склад", СкладВыбор);
        Отбор.Вставить("Наименование", НименованиеВыбор);
        Отбор.Вставить("Дата", ДатаН);
    ПараметрыОтбора.Вставить("Отбор", Отбор);
    Форма = РегистрыСведений.ЦеныСкладЕжедневно.ПолучитьФорму();
3 Dasvi
 
23.06.22
15:10
(1) Через Запрос  хотел , но столкнулся с проблемой его построения)
4 Fish
 
23.06.22
15:10
(2) Отбор и форма не нужны. Получай цену запросом.
5 Dasvi
 
23.06.22
15:11
(4) Сейчас попробую и вернусь)
6 Dasvi
 
23.06.22
15:15
(4) Что то Типа этого?

        "ВЫБРАТЬ
    |    ЦеныСкладыЕжедневно.Цена
    |ИЗ
    |    РегистрСведений.ЦеныСкладыЕжедневно КАК ЦеныСкладыЕжедневно
    |ГДЕ
    |    ЦеныСкладыЕжедневно.Номенклатура = &Номенклатура
    |    И ЦеныСкладыЕжедневно.Склад = &Склад
    |    И ЦеныСкладыЕжедневно.Период = &Дата"
7 Dasvi
 
23.06.22
15:16
(6) Я когда такое выстраивал ругался на значения не те , но я там намудрил слишком , этого правда будет достаточно?
8 Fish
 
23.06.22
15:36
(7) Ну так надо точные значения передавать. И тебе нужна цена именно на конкретную дату или просто последняя цена?
9 Dasvi
 
23.06.22
15:47
(8) Можно скзать и так, дата создания - 1 день, Дата сама себя проставляет
10 Dasvi
 
23.06.22
15:47
"Дата - 1 = Дата" грубо говоря
11 Dasvi
 
23.06.22
15:50
(8) Да я там понял свою ошибку Я грубо говоря писал
Цена = Запрос........
А Надо было
Цена.Значение = Запрос....

Постоянно на этом ловлюсь
До этого ток на LUA и C# работал , но там немного дургие задачи выполнял)
12 Dasvi
 
23.06.22
15:53
(8) А как мне конкретные значения записать в Запрос?
Дата = ЭлементФормы.Дата;
Склад = ЭлементФормы.Склад;
Наименование = ЭлементФормы.Наименование;

А потом запрос
     "ВЫБРАТЬ
    |    ЦеныСкладыЕжедневно.Цена
    |ИЗ
    |    РегистрСведений.ЦеныСкладыЕжедневно КАК ЦеныСкладыЕжедневно
    |ГДЕ
    |    ЦеныСкладыЕжедневно.Номенклатура = &Номенклатура
    |    И ЦеныСкладыЕжедневно.Склад = &Склад
    |    И ЦеныСкладыЕжедневно.Период = &Дата"


??
13 Dasvi
 
23.06.22
15:54
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;

Наименование = Строка ТабличнойЧасти.Наименование; **
14 Смотрящий
 
23.06.22
15:56
(0) А ты там кто ?
15 Мультук
 
гуру
23.06.22
15:56
16 Мультук
 
гуру
23.06.22
15:57
(14)

Ясно же, перебежчик с C# и LUA

Сдает тестовое задание.
17 Dasvi
 
23.06.22
16:08
(16) не) Уже работаю))
18 Dasvi
 
23.06.22
16:09
(16) На LUA и C# в моем залупонске вакансий мало(
19 Dasvi
 
23.06.22
16:09
(14) Да стажер вроде как...
20 Смотрящий
 
23.06.22
16:10
(19) А где старший товарищ по программированию ?
21 Dasvi
 
23.06.22
16:11
(2) А почему нельзя так? Тут же вроде как он заходит в этот регистр , херачит фильтры и ток выбрать остается
По запросу оперативнее?
22 Dasvi
 
23.06.22
16:11
(20) У меня его нет(
23 Dasvi
 
23.06.22
16:12
(20) Дали задачи , сказали делать, разбираться, пожелали удачи)
В принципе вроде как дела продвигаются , за сегодня это уже 3 я задачка, но если учитывать что я целый вчерашний день просто протупил можно сказать
24 Dasvi
 
23.06.22
16:13
Тяжко нынче, без Старших товарищей)
25 Dasvi
 
23.06.22
16:13
Все вроде и знакомо и понятно а вроде и нет, тот же Запросник, вроде SQL а вроде и нет)))
26 Смотрящий
 
23.06.22
16:21
Качни anydesk
ID в почту, почта в моем профиле
Щас посмотрим чо там у тебя
27 Dasvi
 
23.06.22
16:26
(26) Все не так просто) Договор о неразглашении все дела) Я даже скринчик банальный скинуть не могу) Большой брат бдит)
28 Dasvi
 
23.06.22
16:26
(26) Я б тогда скринами код скидывал со всей фигней ,а не заменял каждое название)
29 Dasvi
 
23.06.22
16:34
Процедура ТоварыЦенаПриИзменении(Элемент)
        СтандартнаяОбаботка = Ложь;
    СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;    
    Номенклатура = СтрокаТабличнойЧасти.Номенклатура;
    Склад = ЭлементыФормы.СкладОтправитель.Значение;
    Дата = ЭлементыФормы.Дата.Значение;
    
    Запрос = Новый Запрос ("ВЫБРАТЬ
    |    ЦеныСкладыЕжедневно.Цена
    |ИЗ
    |    РегистрСведений.ЦеныСкладыЕжедневно КАК ЦеныСкладыЕжедневно
    |ГДЕ
    | " +    НоменклатураВыбор(Запрос) + "
    |    И " +    СкладВыбор(Запрос) + "
    |    И " +    ДатаВыбор(Запрос));
    Элемент.Выбрать(Запрос.Выполнить().Выгрузить());
КонецПроцедуры

Функция СкладВыбор(Запрос)
    СтандартнаяОбаботка = Ложь;
    Склад = ЭлементыФормы.СкладОтправитель.Значение;
    Текст = "";
        Текст = Текст + "
        |            И ЦеныСкладыЕжедневно.Склад = &Склад
        |                ";
        Запрос.УстановитьПараметр("Склад", Склад);    
КонецФункции
    
Функция НоменклатураВыбор(Запрос)
    СтандартнаяОбаботка = Ложь;
    СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;    
    Номенклатура = СтрокаТабличнойЧасти.Номенклатура;
    Текст = "";
        Текст = Текст + "
        |            ЦеныСкладыЕжедневно.Номенклатура = &Номенклатура
        |                ";
        Запрос.УстановитьПараметр("Номенклатура", Номенклатура);    
КонецФункции

Функция ДатаВыбор(Запрос)
    СтандартнаяОбаботка = Ложь;
    Дата = ЭлементыФормы.Дата.Значение;
    Текст = "";
        Текст = Текст + "
        |            ЦеныСкладыЕжедневно.Период = &Период
        |                ";
        Запрос.УстановитьПараметр("Дата", Дата);    
КонецФункции



В том ли направлении я иду?
30 Мультук
 
гуру
23.06.22
16:41
(29)

    СтандартнаяОбаботка = Ложь;
    //Такой переменной в этом обработчике нет. Можешь конечно так писать, но толку не будет
    

    Склад = СкладОтправитель;
    Дата =  Дата;

или если нравится

    Склад = ЭтотОбъект.СкладОтправитель;
    Дата =  ЭтотОбъект.Дата; //Масло-масленное, угу

P.S.

Курсы все-таки нужны.
31 Dasvi
 
23.06.22
17:18
(30) А что ж он ругается то на то что если ты не указываешь Склад или Дата
Начинает говорить мол все, нет ничего где переменная братик
А указываешь ему что это и где искать и это масло масляное
Или ему достаточно
Дата = Дата , это ж вообще смысла не должно иметь по сути мы создали переменную и дали ей свое же значение
А в Дата = ЭлементФормы.Дата мы ж говорим что вот мол Переменная и вот ее значение
Или на это можно забить болт и вообще не париться?
Странновато конечно
32 Dasvi
 
23.06.22
17:23
(30) Ну это ж не ответ_)
33 Михаил Козлов
 
23.06.22
17:46
Регистр цен не периодический случаем?
34 Dasvi
 
24.06.22
10:13
(33) Слушай, не совсем понял твою формулировку) Могу точно сказать что обновляется он ежедневно и это по сути табличный список, просто до этого на 8.3 работал на УФ и тут закинули на Не управляемую вроде как и вот опять , все вроде знакомо понятно, но не привычно)
35 Гипервизор
 
24.06.22
10:24
(34) Главное отличие периодического регистра сведений от обычного заключается в том, что в нем присутствует дополнительное системное измерение "Период", имеющее тип "дата". Это позволяет получать не только текущие сведения об объекте, но также на любой момент времени.
Для периодического реквизита при создании указывается свойство "Периодичность" из следующих возможных значений: в пределах секунды, в пределах дня, в пределах месяца, в пределах квартала, в пределах года, по позиции регистратора (доступен, если режим записи у регистра — «Подчинение регистратору»).
36 Dasvi
 
24.06.22
10:56
(35) Значит регистр цен переодический
37 Dasvi
 
24.06.22
11:04
В общем хочется програмно залезть в регистр, выставить фильтр и выгрузить нужно значение Цены
Я так понимаю это делается через ОткрытьФорму()?
38 Dasvi
 
24.06.22
11:05
Запросами делал уже кучу задач, хотелось бы посмотреть можно ли и без них честно говоря