Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 103, средняя оценка - 4.83
НатНат
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 19
#1

Обработка заполнения табличной части документа - 1С

20.09.2012, 19:11. Просмотров 13891. Ответов 2
Метки нет (Все метки)

Здравствуйте!
Необходимо создать внешнюю обработку заполнения табличной части "Товары" документа "Отчет о розничных продажах".
В модуле обработки написала процедуру :
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Процедура Инициализировать(Объект, ИмяТабличнойЧасти = Неопределено, ТабличноеПолеОбъекта = Неопределено) Экспорт
    
     Для каждого СтрТабличнойЧасти Из Документы.ОтчетОРозничныхПродажах Цикл
         НоваяСтрока = СсылкаНаОбъект.Товары.Добавить();
         НоваяСтрока.Номенклатура = СтрТабличнойЧасти.Номенклатура;
         НоваяСтрока.Упаковка = СтрТабличнойЧасти.Упаковка;
         НоваяСтрока.КоличествоУпаковокУчет = СтрТабличнойЧасти.КоличествоУпаковокУчет;
         НоваяСтрока.КоличествоУпаковокФакт = 0;
         НоваяСтрока.КоличествоУпаковок = СтрТабличнойЧасти.КоличествоУпаковок;
         
    Если СтрТабличнойЧасти.Цена = Неопределено или СтрТабличнойЧасти.Цена.Пустая() Тогда
        НоваяСтрока.Цена = 0.01;
    КонецЕсли;
        НоваяСтрока.Сумма = СтрТабличнойЧасти.Сумма;
        НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
        НоваяСтрока.СуммаНДС = СтрТабличнойЧасти.СуммаНДС;
     КонецЦикла;
Форма=ПолучитьФорму("Форма");
Форма.ОткрытьМодально();     
КонецПроцедуры
Вот.. и на форме обработки кнопку сделала и в форме написала такое:
1C
1
2
3
Процедура КнопкаВыполнитьНажатие(Кнопка)
   Инициализировать(Документы.ОтчетОРозничныхПродажах.ПолучитьФорму(), "Товары", "");
КонецПроцедуры
и ничего не работает что то.. никак не могу понять как обработку делать нормально.((((((( помогите пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2012, 19:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Обработка заполнения табличной части документа (1С):

Заполнение табличной части одного документа из табличной части этого же документа
Здравсвуйте. 1С 8.2. Есть документ в этом документе 2 табличные части В 1...

Заполнение табличной части одного документа из табличной части другого документа
Здравсвуйте. 1С 8.2. Есть документ Приход и документ Расход. Оба документа...

Изменение табличной части документа
Здравствуйте! Подскажите как в 7.7 добавить реквизиты табличной части...

Обход табличной части документа
Вопрос не новый, но все-таки я много бродил оп Интернет и не нашел рабочий...

Макет в табличной части документа
используй MSFlexGrid1.TopRow =

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

2
Fenomen
898 / 875 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
20.09.2012, 20:22 #2
А Вы понимаете что Вы написали?
По приведенному коду, (если не смотреть на кучу ошибок) не понятно чего Вы хотите добиться.
0
НатНат
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 19
20.09.2012, 20:54  [ТС] #3
ммм.. вообще мне нужно обработать табличную часть документа о розничных продажах, внеся в него вот эти изменения и потом снова записать в документ. и вот в процедуре мне кажется как раз вот и перебирается табличная часть. а как дальше сделать не знаю. я еще по другому эту обработку делала и тож не получилось.. может посмотрите этот вариант?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Перем Команда_Нашей_Обработки_Идентификатор;
 
Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта");
    
    Назначение = Новый Массив;
    Назначение.Добавить("Документ.ОтчетОРозничныхПродажах");
    
    ПараметрыРегистрации.Вставить("Назначение", Назначение);
    ПараметрыРегистрации.Вставить("Наименование", "Дополнительная обработка таблицы Товары");
    ПараметрыРегистрации.Вставить("Версия", "0.001");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ИСТИНА);
    ПараметрыРегистрации.Вставить("Информация", "Обработка для специального заполнения табличной части Товары у документа Отчет о Розничных Продажах");
    
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Обработаем таблицу Товары", Команда_Нашей_Обработки_Идентификатор, "ВызовКлиентскогоМетода", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;   
    
КонецФункции
 
Функция ПолучитьТаблицуКоманд()
    
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;
    
КонецФункции
 
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    
    НоваяКоманда = ТаблицаКоманд.Добавить();
    
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
    
КонецПроцедуры
 
Команда_Нашей_Обработки_Идентификатор = "ОбработкаТабличнойЧастиТовары";
Вот это написала в модуле обработки и ..
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
&НаКлиенте 
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    
 ОткрытьФормуМодально(ЭтаФорма); 
 
КонецПроцедуры
 
Функция ДопОбработка(Элемент, ОбъектыНазначения)
    
    Основание = Элемент.Ссылка;
    
    Для каждого СтрокаТЧ из Основание.ОтчетОРозничныхПродажах Цикл
        НоваяСтрока = ОбъектыНазначения.Товары.Добавить();
        НоваяСтрока.Номенклатура = СтрокаТЧ.Номенклатура;
        НоваяСтрока.Упаковка = СтрокаТЧ.Упаковка;
        НоваяСтрока.КоличествоУпаковокФакт = 0;
        НоваяСтрока.КоличествоУпаковокУчет = СтрокаТЧ.КоличествоУпаковокУчет;
        НоваяСтрока.КоличествоУпаковок = СтрокаТЧ.КоличествоУпаковок;
        Если СтрокаТЧ.Цена = Неопределено или СтрокаТЧ.Цена.Пустая() Тогда
        НоваяСтрока.Цена = 0.01;
        КонецЕсли;
 
        НоваяСтрока.Сумма = СтрокаТЧ.Сумма;
        НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
        НоваяСтрока.СуммаНДС = СтрокаТЧ.СуммаНДС;
 
    КонецЦикла;
         Возврат Документы.ОтчетОРозничныхПродажах;
  КонецФункции
   
  Процедура ВыполнитьНажатие(Кнопка)
      ДопОбработка();
      КонецПроцедуры
Это в модуле формы. и что то совсем запуталась..=(((( Как написать такую обработку...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2012, 20:54
Привет! Вот еще темы с решениями:

Заполнение табличной части документа
Добрый вечер! Ситуация. Есть справочник ученики, в котором есть ученики и...

Флажёк в табличной части документа
Всем здравствуйте. Пытаюсь в табличной части документа поставить поле с флажком...

7.7. Скрытые строки в табличной части документа
Вот у меня заказчик что придумал : Для некоторых пользователей закрыть часть...

Сортировка в по Коду в табличной части документа
Можно ли в ТЧ документа для колонки Код установить возможность сортировки по...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru