Имя: Пароль:
1C
1С v8
Флажки в табличном поле при опр условии
, ,
0 Гоша М
 
20.04.18
11:22
Ребят помогите пожалуйста,я создал новоую булевуюколонку в таблицу значений,  в обработке "Состояние обеспечения заказа", мне нужно сделать так чтобы в эту колонку ставился флажок, если поставщик прислал номер счета для оплаты,понял что нужно сделать примерно так, влезть в процедуру обработки заказов, и перебрать все заказы, если в заказе счет выстовлен, тогда в мою колонку отметку, помогите , как это сделать
1 Гоша М
 
20.04.18
13:23
Платформа 1С:Предприятие 8.3, типовая конфигурация Управление торговлей 11, обработка "Состояние Обеспечения заказа", сделал булевую колонку, по умолчанию выставил ложно,
2 catena
 
20.04.18
13:26
Гога, вы бы хоть какой-то код показали. Лениво народу писать для вас все с нуля.
3 Гоша М
 
20.04.18
13:34
БылОтборПоНоменклатуре = УстановленОтборПоНоменклатуре;
    ПолеНоменклатура = Новый ПолеКомпоновкиДанных("Номенклатура");
    УстановленОтборПоНоменклатуре = Не ОбеспечениеКлиентСервер.ПроверитьНаличиеНастройки(КомпоновщикНастроек, ПолеНоменклатура, "");
    ЭтоСостояниеОбеспеченияЗаказов = Не Параметры.ВызовИзФормыЗаказа И Параметры.Заказы.Количество() = 0;
    УстановленОтборПоНоменклатуре = УстановленОтборПоНоменклатуре Или
        ЗначениеЗаполнено(ОтборНоменклатура) И ЭтоСостояниеОбеспеченияЗаказов;
    УстановленОтборПоНоменклатуре = УстановленОтборПоНоменклатуре Или ТекущийЗаказ <> Неопределено;

    Если БылОтборПоНоменклатуре И Не УстановленОтборПоНоменклатуре Тогда
        ЗаказыРаскрытые.Очистить();
    КонецЕсли;

    Состояние = СостояниеОбеспеченияЗаказов();
    ОбновитьСтрокиТаблицыТовары(Состояние.Потребности);
    Итоги = Новый Структура("СтатусыИспользуются", Ложь);
    СписокКолонокНовый = ЗаполнитьДатыОбеспеченияПотребностей(Состояние.ОстаткиИобороты, Состояние.ГрафикПоступления, Итоги);
    ОбновитьКолонкиТаблицыТовары(СписокКолонокНовый);
    ЗаполнитьКолонкиСостояниеИРекомендацииТаблицыТовары();

    Элементы.ГруппаСтатусУпаковка.Заголовок = ?(Итоги.СтатусыИспользуются,
        НСтр("ru = 'Статус/Ед. изм.'"),
        НСтр("ru = 'Ед. изм.'"));
    Элементы.СгруппироватьМатериалы.Видимость = ДоступнаГруппировкаТоваров;
    Элементы.ЕстьОтбор.Видимость = ЕстьОтбор(КомпоновщикНастроек.ПользовательскиеНастройки.Элементы);
    
    Для каждого СтрокаТаблицаЗаказа из ТаблицаЗаказа Цикл
        
        Если
           КоличествоПоВсемСкладам
        КонецЦикла;
4 Гоша М
 
20.04.18
13:36
последний цикл пока только набросок
5 Admin_Net_1C
 
20.04.18
13:41
(3) в СтрокаТаблицаЗаказа есть ссылка на документ заказа?
6 Гоша М
 
20.04.18
13:48
Это вы про последний цикл спрашиваете
7 Admin_Net_1C
 
20.04.18
13:49
(6) логично
8 Гоша М
 
20.04.18
13:50
Кажется нет
9 Гоша М
 
20.04.18
13:51
последний цикл, это пока набросок для того чтобы перебрать строки ТаблицыЗаказа
10 Admin_Net_1C
 
20.04.18
13:52
(9) что в переменной ТаблицыЗаказа ?
11 Гоша М
 
20.04.18
13:54
пока ничего, это название таблицы в которой колонки и строки
12 Admin_Net_1C
 
20.04.18
14:10
(0) судя по всему, Вы пытаетесь изменить процедуру ОбновитьСостояниеНаСервере...
Для того чтобы получить ссылку на заказ, Вам нужно обойти циклом все строки реквизита формы "Товары". Как это сделать, можно посмотреть в функции ЗаполнитьДатыОбеспеченияПотребностей, там есть цикл обхода:
...
Для Каждого Заказ Из Товары.ПолучитьЭлементы() Цикл
...

Внутри цикла, в переменной Заказ, Вы сможете получить ссылку на документ заказа.
Далее, на основании имеющейся ссылки, реализуете свою логику:
"...если в заказе счет выстовлен, тогда в мою колонку отметку.."
13 ice777
 
20.04.18
14:18
(0) Ничего не понял.
но привести вид к флажку - это в свойствах колонки табличного поля.
14 Гоша М
 
20.04.18
14:36
(12) да пытаюсь изменить, эту процедуру ОбновитьСостояниеНаСервере, насчет цикла обхода строк из функции ЗаполнитьДатыОбеспеченияПотребностей, это он?

Для Каждого Заказ Из Товары.ПолучитьЭлементы() Цикл

        Если Параметры.ВызовДляСтрокиПродукции И Не УстановленОтборПоНоменклатуре
            И Заказ.НомерСтрокиПродукция <> Параметры.РеквизитыЗаказа.НомерСтрокиПродукция Тогда
            Продолжить;
        КонецЕсли;
15 Admin_Net_1C
 
20.04.18
14:38
(14) а там есть другой ? (Да, оно)
16 Admin_Net_1C
 
20.04.18
14:38
(14)(15) всмысле цикл )
17 Гоша М
 
20.04.18
14:39
ДА еще 1
18 Гоша М
 
20.04.18
14:39
щас покажу
19 Гоша М
 
20.04.18
14:40
вот вся функция
Функция ЗаполнитьДатыОбеспеченияПотребностей(ОстаткиИОбороты, ГрафикПоступления, Итоги)

    Работа = Перечисления.ТипыНоменклатуры.Работа;

    СписокКолонокНовый = Новый СписокЗначений();

    ПараметрыОтбораОбособленные   = Новый Структура("Номенклатура, Характеристика, Склад, Назначение");
    ПараметрыОтбораРабот          = Новый Структура("Номенклатура, Характеристика, Назначение, Подразделение");

    ТаблицаОбособленныхПотребностей = ТаблицаОбособленныхПотребностей(); //Обособленные потребности обрабатываются отдельно.

    ПолностьюВНаличии = Истина;
    Для Каждого Заказ Из Товары.ПолучитьЭлементы() Цикл

        Если Параметры.ВызовДляСтрокиПродукции И Не УстановленОтборПоНоменклатуре
            И Заказ.НомерСтрокиПродукция <> Параметры.РеквизитыЗаказа.НомерСтрокиПродукция Тогда
            Продолжить;
        КонецЕсли;

        ПараметрыОтбора = Новый Структура("Номенклатура, Характеристика, Склад");

        Для Каждого Потребность Из Заказ.ПолучитьЭлементы() Цикл

            Если ТребуетсяДинамическоеРаспределениеОстатков(Потребность.ТипНоменклатуры, Потребность.ВариантОбеспечения) Тогда

                НоваяСтрока = ТаблицаОбособленныхПотребностей.Добавить();
                ЗаполнитьЗначенияСвойств(НоваяСтрока, Потребность);
                НоваяСтрока.Идентификатор = Потребность.ПолучитьИдентификатор();

            Иначе

                ЗаполнитьЗначенияСвойств(ПараметрыОтбора, Потребность);
                ТаблицаОстатков = ОстаткиИобороты.Товары.НайтиСтроки(ПараметрыОтбора);
                
                ГрафикПоступленияТовара = ГрафикПоступления.НайтиСтроки(ПараметрыОтбора);
                Если ГрафикПоступленияТовара.Количество() > 0 Тогда
                    ТаблицаОстатков = СкорректироватьТаблицуОстатковГрафикомПоступления(
                        ОстаткиИобороты.Товары.Скопировать(ТаблицаОстатков),
                        ГрафикПоступленияТовара);
                КонецЕсли;
                
                ДатыОбеспечения = ДатыОбеспеченияПотребности(Потребность, ТаблицаОстатков);
                ПослеЗаполненияДатОбеспечения(Потребность, СписокКолонокНовый, ПолностьюВНаличии, ДатыОбеспечения);

            КонецЕсли;

        КонецЦикла;

        ОбновитьИтогиПоЗаказу(Заказ, Итоги);

    КонецЦикла;

    ЗаполнитьДатыОбеспеченияОбособленныхПотребностей(
        ТаблицаОбособленныхПотребностей, СписокКолонокНовый, ПолностьюВНаличии, ОстаткиИОбороты);

    Если ПолностьюВНаличии Тогда //для картинки обеспечения "в целом по заказу"
        ВставитьЭлементВСписокЗначений(СписокКолонокНовый, НачалоДня(ТекущаяДатаСеанса()));
    КонецЕсли;

    Возврат СписокКолонокНовый;

КонецФункции
20 Admin_Net_1C
 
20.04.18
14:47
(19) см. (12) и дальше сам...
21 Гоша М
 
20.04.18
14:55
а как мне внутри цикла получить ссылку, просто прописать
СсылкаНаЗаказ = Заказ.Ссылка
22 Гоша М
 
20.04.18
15:05
или по вот этому шаблону
СправочникСсылка = Справочники.ИмяСправочника.НайтиПоНаименованию()
если для то для моего случая он как будет выглядить?