Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 19:50

Заполнение ТЧ данными из другой формы.

Автор mashencev_anton, 27 мая 2015, 13:24

0 Пользователей и 1 гость просматривают эту тему.

mashencev_anton

Цитата: Rasty от 27 мая 2015, 14:55
с удовольствием=)если номенклатура не найдена, то в строку мы пихаем Справочники.Номенкалутра.ПустаяСсылка(), потом ищем пустые ссылки в первой тч и заполняем из строками из второй
Добавлено: 27 мая 2015, 14:55


а вот таким вот способом нельзя искать пустые строки?
&НаСервере
Процедура ОповещениеНаСервере(параметр)
    Для каждого стр из объект.Товары цикл
        если НЕ ЗначениеЗаполнено(стр.Номенклатура) Тогда
        Для каждого строка из Параметр цикл   
            стр.номенклатура= Справочники.Номенклатура.НайтиПоНаименованию(строка);               
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

Rasty

берем строку из первой тч, если не заполнено значение, то мы берем строку из второй тч и заполняем первую тч несколько раз....
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

vitasw

Эээээээ. То что вы пытаетесь реализовать, по большому счету, конечно путь правильный, но как-то... по-детски, что-ли.
Смотрите
1. Из экселя загоняем наименования в ТЗ с одной типизованной колонкой "Наименование".
2. Пишем несложный запрос, который на выходе нам выдаст 2 пакета. Пакет 1 = ТЗ1 с заполненной номенклатурой, Пакет2 =ТЗ2 с незаполненной номенклатурой. (В принципе можно даже не делить на 2 ТЗ. Можно все отобразить в одной ТЗ с сортировкой, чтоб пользователь узрел, что обработка работала не просто так, а кой чего нашла)
3. 2 формы нам не нужны. Располагаем наши ТЗ на 2-ух страницах без закладок. В зависимости от необходимости видимостью обыгрываем отображение нужной ТЗ.
4. После заполнения ТЗ2 слить 2 ТЗ в одну в рамках одной обработки = не очень сложно.

mashencev_anton

Цитата: Rasty от 27 мая 2015, 15:28
берем строку из первой тч, если не заполнено значение, то мы берем строку из второй тч и заполняем первую тч несколько раз....
в этом то вся и проблема.. при данном коде получается что все пустые строки ТЧ первой формы заполнятся Одной и тойже номенклатурой из ТЧ второй формы... как этого избежать?

Rasty

получаете количество строк второй тч, потом пишите в цикл


Процедура ОповещениеНаСервере(параметр)
колво = Параметр.Количество();   
i = 0;
Для каждого стр из объект.Товары цикл
        если НЕ ЗначениеЗаполнено(стр.Номенклатура) Тогда
            Если i = Колво Тогда
                Прервать;
            Иначе
                Стр.номенклатура= Справочники.Номенклатура.НайтиПоНаименованию(Параметра.Получить(i));
                i = i + 1;
           КонецЕсли;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

mashencev_anton

Цитата: Rasty от 27 мая 2015, 15:43
получаете количество строк второй тч, потом пишите в цикл


Процедура ОповещениеНаСервере(параметр)
колво = Параметр.Количество();   
i = 0;
Для каждого стр из объект.Товары цикл
        если НЕ ЗначениеЗаполнено(стр.Номенклатура) Тогда
            Если i = Колво Тогда
                Прервать;
            Иначе
                Стр.номенклатура= Справочники.Номенклатура.НайтиПоНаименованию(Параметра.Получить(i));
                i = i + 1;
           КонецЕсли;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

то что надо!!!! Спасибо

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск