Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 27.08.2013
Сообщений: 11
1
1C 8.x

Странности с внешней обработкой

19.11.2013, 21:53. Показов 1246. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть внешняя обработка, в которой я формирую документ заказ покупателя, но когда пытаюсь в действиях выбрать "На основании->Реализация товаров и услуг", то товары с характеристиками туда не попадают. Но если в том же заказе характеристику выбрать еще раз, вручную, то в реализацию эти характеристики попадут

Пожалуйста, помогите, если кто знает, потому что нет абсолютно никаких идей, так как характеристику просто беру из справочника.

Привожу часть кода, в которой я формирую документ:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Документ = Документы.ЗаказПокупателя.СоздатьДокумент(); 
 
        Для Индекс = 1 по Заказы.Количество() - 1 Цикл
            ТЧ = Документ.Товары.Добавить(); 
            Номенклатура = НайтиТоварПоШтрихкоду(Заказы[Индекс].Штрихкод);
            Если ТипЗнч(Номенклатура) = Тип("Неопределено") Тогда
                Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Заказы[Индекс].Наименование);
            КонецЕсли;
            ТЧ.Номенклатура = Номенклатура;
            ТЧ.ХарактеристикаНоменклатуры = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(Заказы[Индекс].Размер);
            ТЧ.Количество = НайтиЧислоВСтроке(Заказы[Индекс].Количество);
            ТЧ.СерияНоменклатуры = НайтиСерию(ТЧ.Номенклатура);
            ТЧ.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
            ТЧ.Коэффициент = 1;
            ТЧ.Цена = НайтиЧислоВСтроке(Заказы[Индекс].Цена);
            ТЧ.Сумма = НайтиЧислоВСтроке(Заказы[Индекс].Сумма); 
            
        КонецЦикла;
        
        ОткрытьЗначение(Документ);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2013, 21:53
Ответы с готовыми решениями:

Проблемы с внешней обработкой табличной части
Здраствуйте в очередной раз. У меня есть внешняя обработка: Процедура Инициализировать(Объект,...

Программно изменить реквизит документа внешней обработкой
Есть код внешней обработки, но он ничего не меняет: Процедура ЗаполнитьПолеКуратора (Кнопка) ...

Под действием внешней силы диск останавливается. Чему равна работа внешней силы?
не могли бы вы решать мне эту задачку пожалуйста. 1. Диск массой m и радиусом R вращается вокруг...

По радиусу окружности и расстоянию до внешней точки вычислить угол между касательными из внешней точки
Можете объяснить с полным решением пж) По радиусу окружности и расстоянию до внешней точки...

8
Модератор
Эксперт 1С
4029 / 2974 / 591
Регистрация: 10.03.2011
Сообщений: 11,699
Записей в блоге: 1
19.11.2013, 22:00 2
Искать то нужно с учетом владельца!!!!
=Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(Заказы[Индекс].Размер,Истина,Номенклатура);
1
0 / 0 / 0
Регистрация: 27.08.2013
Сообщений: 11
19.11.2013, 23:51  [ТС] 3
Спасибо! Я добавила, но это не сильно помогло. Не знаю было ли это раньше, но почему то один товар из заказа всё-таки добавился с размером, но остальные почему то нет
0
Модератор
Эксперт 1С
4029 / 2974 / 591
Регистрация: 10.03.2011
Сообщений: 11,699
Записей в блоге: 1
20.11.2013, 00:32 4
1C
1
2
3
4
ТЧ.ХарактеристикаНоменклатуры = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(Заказы[Индекс].Размер,Истина,Номенклатура);
Если ТЧ.ХарактеристикаНоменклатуры.Пустая() Тогда
   Сообщить("У номенклатуры - <"+Номенклатура+">, не найдено характеристики с наименованием - <+Заказы[Индекс].Размер+>");
КонецЕсли;
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
20.11.2013, 13:41 5
индекс, вообще-то, с нуля начинается. НайтиПоНаименованию() - метод хоть и соптимизированный, но только на пробелы и большие/маленькие (и то не уверен). А размер в харке может торчать и в середине. Надо запросом при помощи ПОДОБНО, либо тупо перебрать выборку методом Найти()
0
0 / 0 / 0
Регистрация: 27.08.2013
Сообщений: 11
20.11.2013, 13:47  [ТС] 6
Не очень поняла, чем мне это поможет. Может быть я как то не так описала проблему..

Моя проблема состоит в том, что я формирую документ, он формируется без каких либо проблем, характеристики, там где они есть, находятся и вставляются в табличную часть документа. Он открывается, всё хорошо.

Потом я захожу в Действия->На основании->Реализация товаров и услуг и количество позиций становится меньше, чем в заказе (в документе Заказ покупателя) на количество позиций, у которых включена галка "ведение по характеристикам"
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
20.11.2013, 14:01 7
ну, по тексту вообще непонятно, что должно попадать в заказ. По идее, Заказ.Товары д.б. идентична РТУ.Товары и закидывается в новый док Заказ.Товары.Загрузить(РТУ.Товары.Выгрузить()). А далее в цикле подпиливаются различающиеся поля.
0
0 / 0 / 0
Регистрация: 27.08.2013
Сообщений: 11
20.11.2013, 14:05  [ТС] 8
Вот именно, что по идее они должны быть идентичны. Просто непонятно, что я не так делаю, потому что если в моем документе Заказ покупателя самостоятельно выбрать характеристику, то она потом попадет в реализацию.

Поэтому можно сделать вывод, что в моей характеристике ему что то не нравится, но что непонятно.

А может быть, что это вообще не косяк внешней обработки?
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
20.11.2013, 14:19 9
Так идентичные ТЧ или нет? В РТУ есть харки? Или там всё разбито на размеры, цвета и пр. прямо в ТЧ? Тогда в случае отсутствия харки её надо создать. Делайте кондово:
1C
1
2
3
4
5
6
7
8
9
10
11
12
харка=Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
харки=Справочники.ХарактеристикиНоменклатуры.Выбрать(,Номенклатура);
Пока харки.Следующий() Цикл
Если Найти(харки.Наименование,""+Размер) =0 Тогда Продолжить;КонецЕсли;
харка=харки.Ссылка;
Прервать;
КонецЦикла;
Если харка.Пустая() Тогда
харка=Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
харка.Владелец=Номенклатура;
.....
КонецЕсли;
0
20.11.2013, 14:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2013, 14:19
Помогаю со студенческими работами здесь

1с 7.7 Вызов процедуры внешней обработки из другой внешней обработки
Здравствуйте всем! Вопрос такой: Есть внешняя обработка Обработка1. Обработка1 запускается через...

Обработкой регионов
Всем доброго времени суток. Учу wiapi по книжке Петзольда. Пытаясь написать что-то похожее на то,...

помогите с обработкой
Подскажите как создать обработку,чтобы в справочнике в зависимости от значения одного реквизита,...

с обработкой данных
Сначала выводится один номер вопроса, а обрабатывается при нажатии кнопки &quot;ответить&quot; другой номер...

Поделитесь обработкой
Здравствуйте) Скажите пожалуйста, возможно ли перенести товары, единицы измерения, из 1с 7.7...

Проблемы с языком и обработкой
В поле для ввода текста пишу строку, в функции её принимает строка затем нужно строку проверить на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru