Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Флажки в табличном поле при опр условии

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

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

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

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

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

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

        Если Параметры.ВызовДляСтрокиПродукции И Не УстановленОтборПоНоменклатуре
            И Заказ.НомерСтрокиПродукция <> Параметры.РеквизитыЗаказа.НомерСтрокиПродукция Тогда
            Продолжить;
        КонецЕсли;
   Admin_Net_1C
 
15 - 20.04.18 - 14:38
(14) а там есть другой ? (Да, оно)
   Admin_Net_1C
 
16 - 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 Тогда
                    ТаблицаОстатков = СкорректироватьТаблицуОстатковГрафикомПоступления(
                        ОстаткиИобороты.Товары.Скопировать(ТаблицаОстатков),
                        ГрафикПоступленияТовара);
                КонецЕсли;
                
                ДатыОбеспечения = ДатыОбеспеченияПотребности(Потребность, ТаблицаОстатков);
                ПослеЗаполненияДатОбеспечения(Потребность, СписокКолонокНовый, ПолностьюВНаличии, ДатыОбеспечения);

            КонецЕсли;

        КонецЦикла;

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

    КонецЦикла;

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

    Если ПолностьюВНаличии Тогда//для картинки обеспечения "в целом по заказу"

        ВставитьЭлементВСписокЗначений(СписокКолонокНовый, НачалоДня(ТекущаяДатаСеанса()));
    КонецЕсли;

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует