|
Оптимизация обработки (Кривой) | ☑ | ||
---|---|---|---|---|
0
volfy
21.11.12
✎
21:55
|
Добрый вечер форумчане, не подскажете как в обработке по созданию и заполнению табличной части оптимизировать скорость? Как получить объект один раз а не в цикле каждый раз?
|
|||
1
zak555
21.11.12
✎
21:56
|
переписать её
|
|||
2
volfy
21.11.12
✎
21:56
|
Функция ПрочитатьТабличныйДокументExcelВТЗВДокумент(ИмяФайла)
xlLastCell = 11; ВыбФайл = Новый Файл(ИмяФайла); Если НЕ ВыбФайл.Существует() Тогда Сообщить("Файл не существует!"); Возврат 0; КонецЕсли; Попытка Excel = Новый COMОбъект("Excel.Application"); Excel.WorkBooks.Open(ИмяФайла); ExcelЛист = Excel.Sheets(2); Исключение Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel."); Возврат 0; КонецПопытки; ActiveCell = ExcelЛист.Cells.SpecialCells(xlLastCell); RowCount = ActiveCell.Row; ColumnCount = ActiveCell.Column; Перебрано = 0; НеУникально = 0; Добавлено = 0; ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Артикул"); ТЗ.Колонки.Добавить("Товар"); ТЗ.Колонки.Добавить("Цена"); ТЗ.Колонки.Добавить("Номер"); ТЗ.Колонки.Добавить("Количество"); Док = Документы.ЗаказКлиента.СоздатьДокумент(); //Создали и заполнили документ Док.Дата = ТекущаяДата(); // Док.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован; // ТЧ = Док.Товары.Добавить(); // Добавляем строки Запись = ТЗ.Добавить(); ДобСтроку = Док.Товары.Добавить(); Для Row = 2 По RowCount Цикл Запись.Артикул = ExcelЛист.Cells(Row, 3).Value; Запись.Товар = ExcelЛист.Cells(Row, 4).Value; Запись.Цена = ExcelЛист.Cells(Row, 5).Value; Запись.Номер = ExcelЛист.Cells(Row, 1).Value; Запись.Количество = ExcelЛист.Cells(Row, 2).Value; КонецЦикла; ТЗ.Сортировать("Номер Возр"); Док = Док.ПолучитьОбъект(); Для Каждого Элемент ИЗ ТЗ Цикл Док = Документы.ЗаказКлиента.; Если Док.Пустая() Тогда Док = Документы.ЗаказКлиента.СоздатьДокумент(); Добавлено = Добавлено + 1; Иначе НеУникально = НеУникально + 1; Док = Док.ПолучитьОбъект(); //!!!!!!!!! КонецЕсли; Док.Дата = ТекущаяДата(); Док.НомерПоДаннымКлиента = Элемент.Номер; А = 0; Для Каждого Строка ИЗ Док.Товары Цикл Если Строка.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Строка(Элемент.Товар), Истина) Тогда А = А + 1; КонецЕсли; КонецЦикла; Если А = 0 Тогда ДобСтроку.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Строка(Элемент.Товар), Истина); ДобСтроку.Цена = Элемент.Цена; ДобСтроку.Количество = Элемент.Количество; Док.Записать(); КонецЕсли; КонецЦикла; Обработано = Добавлено + НеУникально; Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Загрузка документов завершена, обработано: " + Обработано; Сообщение.Сообщить(); КонецФункции |
|||
3
volfy
21.11.12
✎
21:57
|
Очень хочется по максимуму оптимизировать ...опыта у меня почти ноль написал как мог ...знаю что там есть ошибки...
|
|||
4
volfy
21.11.12
✎
21:57
|
Укажите какие ...ну очень хочется избавиться от "получить объект()" в цикле
|
|||
5
Нуф-Нуф
21.11.12
✎
21:57
|
запрос тебя спасет
|
|||
6
zak555
21.11.12
✎
21:58
|
кем формируется эксель-файл ?
|
|||
7
Нуф-Нуф
21.11.12
✎
21:58
|
либо помести ПолучитьОбъект в общий модуль с хешированием
|
|||
8
volfy
21.11.12
✎
21:59
|
Файл формирует фирма...сторонняя
|
|||
9
Нуф-Нуф
21.11.12
✎
21:59
|
кстати вот здесь ничего не попутано?
Запись = ТЗ.Добавить(); ДобСтроку = Док.Товары.Добавить(); Для Row = 2 По RowCount Цикл Запись.Артикул = ExcelЛист.Cells(Row, 3).Value; Запись.Товар = ExcelЛист.Cells(Row, 4).Value; Запись.Цена = ExcelЛист.Cells(Row, 5).Value; Запись.Номер = ExcelЛист.Cells(Row, 1).Value; Запись.Количество = ExcelЛист.Cells(Row, 2).Value; КонецЦикла; |
|||
10
volfy
21.11.12
✎
22:00
|
О_о с хэшированием? ...боюсь для меня это что то невыполнимое... + обработка должна быть внешней
|
|||
11
volfy
21.11.12
✎
22:01
|
ну я сначала всё в ТЗ , там сортирую, после в цикле создаю документы если таких еще нет, и заполняю табличную часть
|
|||
12
volfy
21.11.12
✎
22:01
|
уже из ТЗ
|
|||
13
Нуф-Нуф
21.11.12
✎
22:02
|
(12) не вижу в цикле в (9) - добавить строку.
|
|||
14
servs
21.11.12
✎
22:02
|
Посмотри замером производительности что дольше всего выполняется.
|
|||
15
zak555
21.11.12
✎
22:02
|
> Док = Документы.ЗаказКлиента.СоздатьДокумент();
док -- это объект документ //... > Док = Док.ПолучитьОбъект(); как у тебя он тогда не ругается на это ? |
|||
16
volfy
21.11.12
✎
22:02
|
Пардон =)
Для Row = 2 По RowCount Цикл Запись = ТЗ.Добавить(); Запись.Артикул = ExcelЛист.Cells(Row, 3).Value; Запись.Товар = ExcelЛист.Cells(Row, 4).Value; Запись.Цена = ExcelЛист.Cells(Row, 5).Value; Запись.Номер = ExcelЛист.Cells(Row, 1).Value; Запись.Количество = ExcelЛист.Cells(Row, 2).Value; КонецЦикла; |
|||
17
Нуф-Нуф
21.11.12
✎
22:03
|
тут два варианта:
- сунуть полученную ТЗ в запрос и соединить со справочником номенклатура - использовать функцию хешируемого общего модуля |
|||
18
servs
21.11.12
✎
22:04
|
volfy, не зачет, читай ЖКК, приходи через неделю :)
|
|||
19
volfy
21.11.12
✎
22:05
|
Да уже просто весь код перелопатил ..ща кину есть исходник
|
|||
20
volfy
21.11.12
✎
22:05
|
Функция ПрочитатьТабличныйДокументExcelВТЗВДокумент(ИмяФайла)
xlLastCell = 11; ВыбФайл = Новый Файл(ИмяФайла); Если НЕ ВыбФайл.Существует() Тогда Сообщить("Файл не существует!"); Возврат 0; КонецЕсли; Попытка Excel = Новый COMОбъект("Excel.Application"); Excel.WorkBooks.Open(ИмяФайла); ExcelЛист = Excel.Sheets(2); Исключение Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel."); Возврат 0; КонецПопытки; ActiveCell = ExcelЛист.Cells.SpecialCells(xlLastCell); RowCount = ActiveCell.Row; ColumnCount = ActiveCell.Column; Перебрано = 0; //Сколько строк будет перебираться НеУникально = 0; Добавлено = 0; //Попытка ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Артикул"); ТЗ.Колонки.Добавить("Товар"); ТЗ.Колонки.Добавить("Цена"); ТЗ.Колонки.Добавить("Номер"); Для Row = 2 По RowCount Цикл Запись = ТЗ.Добавить(); Запись.Артикул = ExcelЛист.Cells(Row, 3).Value; Запись.Товар = ExcelЛист.Cells(Row, 4).Value; Запись.Цена = ExcelЛист.Cells(Row, 5).Value; Запись.Номер = ExcelЛист.Cells(Row, 1).Value; КонецЦикла; ТЗ.Сортировать("Номер Возр"); Для Каждого Элемент ИЗ ТЗ Цикл Док = Документы.ЗаказКлиента.НайтиПоРеквизиту("НомерПоДаннымКлиента", Строка(Элемент.Номер)); Если Док.Пустая() Тогда Док = Документы.ЗаказКлиента.СоздатьДокумент(); Добавлено = Добавлено + 1; Иначе НеУникально = НеУникально + 1; Док = Док.ПолучитьОбъект(); КонецЕсли; Док.Дата = ТекущаяДата(); Док.НомерПоДаннымКлиента = Элемент.Номер; А = 0; Для Каждого Строка ИЗ Док.Товары Цикл Если Строка.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Строка(Элемент.Товар), Истина) Тогда А = А + 1; КонецЕсли; КонецЦикла; Если А = 0 Тогда ДобСтроку = Док.Товары.Добавить(); ДобСтроку.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Строка(Элемент.Товар), Истина); ДобСтроку.Цена = Элемент.Цена; Док.Записать(); КонецЕсли; КонецЦикла; Обработано = Добавлено + НеУникально; Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Загрузка документов завершена, обработано: " + Обработано; Сообщение.Сообщить(); КонецФункции |
|||
21
volfy
21.11.12
✎
22:06
|
Вот за это начальник ...не погладил =) сказал что слишком часто получаю объект...
|
|||
22
volfy
21.11.12
✎
22:06
|
попытка там лишняя конечно...просто убрать забыл
|
|||
23
volfy
21.11.12
✎
22:07
|
Код работает...интересует увеличение оперативности..
|
|||
24
Нуф-Нуф
21.11.12
✎
22:08
|
будь мужиком, блеать! сделай (17)!
|
|||
25
volfy
21.11.12
✎
22:08
|
servs К твоему возрасту я буду шарить не хуже=)
|
|||
26
volfy
21.11.12
✎
22:08
|
Нуф-Нуф, хорошо =) I'll try
|
|||
27
H A D G E H O G s
21.11.12
✎
22:11
|
Толпа дятлов...
|
|||
28
H A D G E H O G s
21.11.12
✎
22:12
|
Нуф-Нуф самый главный дъятель, походу.
|
|||
29
H A D G E H O G s
21.11.12
✎
22:13
|
Для Row = 2 По RowCount Цикл
Запись = ТЗ.Добавить(); Запись.Артикул = ExcelЛист.Cells(Row, 3).Value; Запись.Товар = ExcelЛист.Cells(Row, 4).Value; Запись.Цена = ExcelЛист.Cells(Row, 5).Value; Запись.Номер = ExcelЛист.Cells(Row, 1).Value; КонецЦикла; Это что за ёб4566й стыд? |
|||
30
H A D G E H O G s
21.11.12
✎
22:14
|
Убрать (29) и почитать про
Worksheet.UsedRange http://msdn.microsoft.com/ru-ru/library/microsoft.office.tools.excel.worksheet.usedrange.aspx |
|||
31
volfy
21.11.12
✎
22:17
|
H A D G E H O G s разве не это?
ActiveCell = ExcelЛист.Cells.SpecialCells(xlLastCell); RowCount = ActiveCell.Row; ColumnCount = ActiveCell.Column; |
|||
32
volfy
21.11.12
✎
22:17
|
Получаю последние заполненные ячейки
|
|||
33
volfy
21.11.12
✎
22:17
|
...вроде)
|
|||
34
H A D G E H O G s
21.11.12
✎
22:18
|
А, не не заметил, что ты исправился.
Запись = ТЗ.Добавить(); |
|||
35
servs
21.11.12
✎
22:19
|
(27) (34) +1
|
|||
36
H A D G E H O G s
21.11.12
✎
22:19
|
Тогда просто используй
UsedRange Это COMSafeArray - передашь 1 раз и данные твои, чем 100500 раз чехвостить тормозной standalone сервер Excel. |
|||
37
volfy
21.11.12
✎
22:20
|
Объясните уже по нубовски... Вот я получил ячейки... мне нужно просто выцепить эти данные и записать в документы "ЗаказыПокупателей"
Там просто заполнить таб часть, и всё... при условии что повторный вызов не убъёт документы и номенклатуру конечно ... Да извини.... там из перелопаченого кода просто куски(( |
|||
38
volfy
21.11.12
✎
22:20
|
Ой спасибо =) Ща прочитаю про него и сделаю))
|
|||
39
H A D G E H O G s
21.11.12
✎
22:26
|
Нуф-Нуф -а не забудьте перевести в падаваны, чтобы отчеты писать или в руководители проектов, чтобы эффективно автоматизировать.
|
|||
40
Азат
21.11.12
✎
23:28
|
(0) ну косаря за 3 могу помочь)
|
|||
41
volfy
21.11.12
✎
23:54
|
(40) За 3 косаря я могу двойной апперкот прописать)
|
|||
42
volfy
21.11.12
✎
23:54
|
(41) + в мортал комбат хД)
|
|||
43
H A D G E H O G s
21.11.12
✎
23:55
|
Молодой, горячий, наивный, глупый... Эххх, годы, годы..
|
|||
44
volfy
21.11.12
✎
23:56
|
H A D G E H O G s да ты сам не стар =)
|
|||
45
Азат
21.11.12
✎
23:56
|
(41) + (42) дерзай
|
|||
46
volfy
21.11.12
✎
23:56
|
(45) не уходим от темы
|
|||
47
H A D G E H O G s
21.11.12
✎
23:57
|
(44) Реальные пацаны играют в Battlefield 3!
|
|||
48
volfy
21.11.12
✎
23:57
|
Функция ПрочитатьТабличныйДокументExcelВТЗВДокумент(ИмяФайла)
xlLastCell = 11; ВыбФайл = Новый Файл(ИмяФайла); Если НЕ ВыбФайл.Существует() Тогда Сообщить("Файл не существует!"); Возврат 0; КонецЕсли; Попытка Excel = Новый COMОбъект("Excel.Application"); Excel.WorkBooks.Open(ИмяФайла); ExcelЛист = Excel.Sheets(2); Исключение Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel."); Возврат 0; КонецПопытки; ActiveCell = ExcelЛист.Cells.SpecialCells(xlLastCell); RowCount = ActiveCell.Row; ColumnCount = ActiveCell.Column; ДанныеExcel = ExcelЛист.UsedRange.Value; ТаблДанные = Новый ТаблицаЗначений; ВсегоКолонок = ДанныеExcel.GetLength(1); А = 0; Для нКол=1 По ВсегоКолонок-0 Цикл А = А + 1; // КОЛОНКИ С СИМВОЛАМИ ДАЮТ ОШИБКУ!!! Имя = "Колонка" + А; //ИмяКолонки = ДанныеExcel.GetValue(нКол,1); ТаблДанные.Колонки.Добавить(Имя); // Ошибка НЕВЕРНОЕ ИМЯ КОЛОНКИ |
|||
49
volfy
21.11.12
✎
23:58
|
И так и сяк крутил ... в отладке в табло имя присваивается ....а на деле...нет =(
|
|||
50
volfy
21.11.12
✎
23:59
|
(47) у меня 2 работы...какие тут игры
|
|||
51
H A D G E H O G s
22.11.12
✎
00:02
|
100500 тема на мисте была.
Почему вы, молодешъ, не пользуете поиск? Как так???? https://www.google.ru/search?as_sitesearch=forum.mista.ru&q=UsedRange |
|||
52
volfy
22.11.12
✎
00:03
|
(51) Извини =( правда уже "кипю" .... с 6 утра за 1с... учусь
|
|||
53
H A D G E H O G s
22.11.12
✎
00:03
|
v8: Как узнать сколько всего строк в на листе Excel?
пост номер 3, готовый код @Fragster-а, ему можно верить, он куйню не пишет. |
|||
54
H A D G E H O G s
22.11.12
✎
00:04
|
Вернее, пост номер 2, пардон.
|
|||
55
H A D G E H O G s
22.11.12
✎
00:05
|
(52) Иди, выпей 100 грамм красного полусладкого и ложись спать, завтра с утра за 10 минут напишешь.
|
|||
56
volfy
22.11.12
✎
00:06
|
(55) Хорошо ...всем спокойной ночи =) спасибо!
|
|||
57
Fragster
гуру
22.11.12
✎
00:11
|
(53) я тебе (ну и всем заинтересованным в многопоточности) подарочек ваяю счас, тока помощь нужна будет для тестирования
|
|||
58
H A D G E H O G s
22.11.12
✎
00:12
|
(57) Тестирование новых экспериментальных препаратах на ежиках?
Кошки дохнут? Мышки взрываются? Да я всегда -только за! |
|||
59
volfy
23.11.12
✎
01:42
|
Результат такой
.................. Функция ПрочитатьТабличныйДокументExcelВТЗВДокумент(ИмяФайла, ЕстьНазванияКолонок = Истина) xlLastCell = 11; Таблица = Новый ТаблицаЗначений; Массив = Новый Массив; // КЧ = Новый КвалификаторыСтроки(100); // ОПИСЫВАЮ ТИПЫ КОЛОНОК, ОТ ЭТОГО НАДО Массив.Добавить(Тип("Строка")); // КАК ТО ИЗБАВИТЬСЯ ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ,КЧ); // ВыбФайл = Новый Файл(ИмяФайла); Если НЕ ВыбФайл.Существует() Тогда Сообщить("Файл не существует!"); Возврат 0; КонецЕсли; excel = Новый COMОбъект("excel.application"); workbook = excel.workbooks.open(ИмяФайла); Массив = workbook.Sheets(2).usedrange.value.Выгрузить(); workbook.close(); workbook = 0; excel = 0; ЧислоКолонок = Массив.ВГраница(); ЧислоСтрок = Массив.Получить(0).ВГраница(); Для СчКол = 0 По ЧислоКолонок Цикл Если ЕстьНазванияКолонок Тогда Попытка Таблица.Колонки.Добавить(Массив.Получить(СчКол).Получить(0), ОписаниеТиповЧ); Исключение Таблица.Колонки.Добавить("Кол"+Формат(СчКол,"ЧГ=0"), ОписаниеТиповЧ); // !!!!!!! ИЗМЕНИТЬ КонецПопытки; Иначе Таблица.Колонки.Добавить("Кол"+Формат(СчКол,"ЧГ=0"), ОписаниеТиповЧ); КонецЕсли; КонецЦикла; Для СчСтрок = ?(ЕстьНазванияКолонок,1,0) По ЧислоСтрок Цикл ЕстьЗначение = Ложь; Для СчКол = 0 По ЧислоКолонок Цикл Если Не ПустаяСтрока(Массив[СчКол][СчСтрок]) Тогда ЕстьЗначение = Истина; Прервать; КонецЕсли; КонецЦикла; Если ЕстьЗначение Тогда Строка = Таблица.Добавить(); Для СчКол = 0 По ЧислоКолонок Цикл Строка[СчКол] = Массив[СчКол][СчСтрок]; КонецЦикла; КонецЕсли; КонецЦикла; //ПОЛУЧАЕМ УНИКАЛЬНЫЕ НОМЕРА ЗАКАЗЧИКОВ Запрос3 = Новый Запрос; Запрос3.УстановитьПараметр("Таблица", Таблица); Запрос3.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | Таблица.Кол |ПОМЕСТИТЬ ВТ |ИЗ | &Таблица КАК Таблица |; |ВЫБРАТЬ | ВТ.Кол |ИЗ | ВТ КАК ВТ"; Выборка3 = Запрос3.Выполнить(); Результат3 = Выборка3.Выбрать(); Номера = Новый ТаблицаЗначений; Номера.Колонки.Добавить("Номер", ОписаниеТиповЧ); Пока Результат3.Следующий() Цикл Номера.Добавить().Номер = Число(Результат3.Кол); КонецЦикла; Для Каждого Номер ИЗ Номера Цикл // ИЩЕМ ДОКУМЕНТЫ !!!!!!!!!!ДОБАВИТЬ ВЫБОР ПО ЗАКАЗЧИКУ И ОТБОР ПО ДАТЕ!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказКлиента.Ссылка, | ЗаказКлиента.Дата, | ЗаказКлиента.НомерПоДаннымКлиента, | ЗаказКлиента.Товары.( | Номенклатура, | Количество, | Цена | ) |ИЗ | Документ.ЗаказКлиента КАК ЗаказКлиента |ГДЕ | ЗаказКлиента.НомерПоДаннымКлиента = &НомерПоДаннымКлиента"; Запрос.УстановитьПараметр("НомерПоДаннымКлиента", Строка(Номер.Номер)); Выборка = Запрос.Выполнить(); Результат = Выборка.Выбрать(); Если Выборка.Пустой() Тогда /// ДОКУМЕНТ С ТАКИМ НОМЕРОМ НЕ НАЙДЕН! СОЗДАЁМ! И ЗАПОЛНЯЯЯЯЯЯЕМ!!!! // СОЗДАЁМ Док = Документы.ЗаказКлиента.СоздатьДокумент(); Док.Дата = Дата; Док.Статус = Перечисления.СтатусыЗаказовКлиентов.Согласован; Док.НомерПоДаннымКлиента = Строка(Номер.Номер); // ЗАПОЛНЯЕМ Запрос4 = Новый Запрос; Запрос4.УстановитьПараметр("Таблица", Таблица); Запрос4.УстановитьПараметр("Номер", Номер.Номер); Запрос4.Текст = "ВЫБРАТЬ | * |ПОМЕСТИТЬ ВТ |ИЗ | &Таблица КАК Таблица | |ГДЕ | Таблица.Кол = &Номер |; |ВЫБРАТЬ | * |ИЗ | ВТ КАК ВТ"; Выборка4 = Запрос4.Выполнить(); Результат4 = Выборка4.Выбрать(); Пока Результат4.Следующий() Цикл ТЧ = Док.Товары.Добавить(); ТЧ.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Результат4.Товар, ИСТИНА); ТЧ.КоличествоУпаковок = Число(Результат4.Кол1); ТЧ.Цена = Число(Результат4.Цена); ТЧ.СтавкаНДС = ТЧ.Номенклатура.СтавкаНДС; ТЧ.Сумма = ТЧ.Цена * ТЧ.КоличествоУпаковок; СтруктураДействий = Новый Структура; СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВСтрокеТЧ(Док); СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц"); СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСумму"); КэшированныеЗначения = Неопределено; ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТЧ, СтруктураДействий, КэшированныеЗначения); КонецЦикла; Док.Записать(); КонецЕсли; Пока Результат.Следующий() Цикл // ДОКУКМЕНТ НАЙДЕН! ЗАПОЛНЯЕМ ТАБ ЧАСТЬ Запрос2 = Новый Запрос; Запрос2.УстановитьПараметр("Таблица", Таблица); Запрос2.УстановитьПараметр("Номер", Номер.Номер); Запрос2.Текст = "ВЫБРАТЬ | * |ПОМЕСТИТЬ ВТ |ИЗ | &Таблица КАК Таблица | |ГДЕ | Таблица.Кол = &Номер |; |ВЫБРАТЬ | * |ИЗ | ВТ КАК ВТ"; Выборка2 = Запрос2.Выполнить(); Результат2 = Выборка2.Выбрать(); Пока Результат2.Следующий() Цикл Док = Результат.Ссылка.ПолучитьОбъект(); ТЧ = Док.Товары.Добавить(); ТЧ.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Результат2.Товар, ИСТИНА); ТЧ.КоличествоУпаковок = Число(Результат2.Кол1); ТЧ.Цена = Число(Результат2.Цена); ТЧ.СтавкаНДС = ТЧ.Номенклатура.СтавкаНДС; ТЧ.Сумма = ТЧ.Цена * ТЧ.КоличествоУпаковок; СтруктураДействий = Новый Структура; СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВСтрокеТЧ(Док); СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц"); СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСумму"); КэшированныеЗначения = Неопределено; ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТЧ, СтруктураДействий, КэшированныеЗначения); Док.Записать(); КонецЦикла; КонецЦикла; КонецЦикла; // кол - Номер // кол1 - Позиций // Артикул - Артикул СПРАВКА // Товар = Наименование // Цена = Цена Возврат Таблица; КонецФункции ........................ |
|||
60
volfy
23.11.12
✎
01:46
|
Можно еще что то оптимизировать?
Из планов в доработку : Поиск номенклатуры по артикулу, как сделать так что бы поиск был максимально быстрым? (если не найдено добавим) Не добавлять дубли строк тч если такой документ уже есть ( КАК УЗНАТЬ ЧТО ЭТО ИМЕННО ТОТ ДОКУМЕНТ?) Документы добавляются по номеру заказчика сейчас так как это первый ввод документов, как добавлять документы в следующий раз новыми а не опять в эти же документы? |
|||
61
volfy
23.11.12
✎
01:46
|
Ну это уже доработки...основную роль она выполняет .... большое спасибо всем кто помогал кстати =)
|
|||
62
volfy
23.11.12
✎
01:47
|
Если еще есть советы и предложения во вопросам или есть варианты оптимизации скажите пожалуйста
|
|||
63
Конфигуратор1с
23.11.12
✎
01:48
|
(62)За запрос в цикле тебя щас порвут на британский флаг
|
|||
64
volfy
23.11.12
✎
01:48
|
А как избавиться?
|
|||
65
volfy
23.11.12
✎
01:49
|
у меня импорт из экселя....
там несколько строк могут относиться к одному документу |
|||
66
volfy
23.11.12
✎
01:52
|
просто уж как короче не знаю....и так обработка на моём двухядерном 1.6 ггц проце выполняется 1 минуту
|
|||
67
volfy
23.11.12
✎
01:52
|
как сократить...не знаю честно.... подскажи)
|
|||
68
Конфигуратор1с
23.11.12
✎
01:54
|
(67)Получить все данные сразу и уже результат запроса обрабатывать
|
|||
69
volfy
23.11.12
✎
01:55
|
(68) Выгрузить в тз?
|
|||
70
volfy
23.11.12
✎
01:55
|
просто схема не ясна....ща покумекаю
|
|||
71
Конфигуратор1с
23.11.12
✎
01:56
|
Запрос3 = Новый Запрос;
Запрос3.УстановитьПараметр("Таблица", Таблица); Запрос3.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | Таблица.Кол |ПОМЕСТИТЬ ВТ |ИЗ | &Таблица КАК Таблица |; |ВЫБРАТЬ | ВТ.Кол |ИЗ | ВТ КАК ВТ"; Выборка3 = Запрос3.Выполнить(); Результат3 = Выборка3.Выбрать(); Номера = Новый ТаблицаЗначений; Номера.Колонки.Добавить("Номер", ОписаниеТиповЧ); Пока Результат3.Следующий() Цикл Номера.Добавить().Номер = Число(Результат3.Кол); КонецЦикла; а это у тебя точно работает? |
|||
72
volfy
23.11.12
✎
01:57
|
Признаюсь у меня идей нет.
|
|||
73
Конфигуратор1с
23.11.12
✎
01:57
|
Вот тут
Запрос3 = Новый Запрос; Запрос3.УстановитьПараметр("Таблица", Таблица); Запрос3.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | Таблица.Кол |ПОМЕСТИТЬ ВТ |ИЗ | &Таблица КАК Таблица |; |ВЫБРАТЬ | ВТ.Кол |ИЗ | ВТ КАК ВТ"; Выборка3 = Запрос3.Выполнить(); Результат3 = Выборка3.Выбрать(); Номера = Новый ТаблицаЗначений; Номера.Колонки.Добавить("Номер", ОписаниеТиповЧ); Пока Результат3.Следующий() Цикл Номера.Добавить().Номер = Число(Результат3.Кол); КонецЦикла; Для Каждого Номер ИЗ Номера Цикл // ИЩЕМ ДОКУМЕНТЫ !!!!!!!!!!ДОБАВИТЬ ВЫБОР ПО ЗАКАЗЧИКУ И ОТБОР ПО ДАТЕ!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказКлиента.Ссылка, | ЗаказКлиента.Дата, | ЗаказКлиента.НомерПоДаннымКлиента, | ЗаказКлиента.Товары.( | Номенклатура, | Количество, | Цена | ) |ИЗ | Документ.ЗаказКлиента КАК ЗаказКлиента |ГДЕ | ЗаказКлиента.НомерПоДаннымКлиента = &НомерПоДаннымКлиента"; Запрос.УстановитьПараметр("НомерПоДаннымКлиента", Строка(Номер.Номер)); Выборка = Запрос.Выполнить(); Результат = Выборка.Выбрать(); Почему не сделать одним запросом сразу а уже его результат обходить? |
|||
74
volfy
23.11.12
✎
01:57
|
У меня всё отрабатывает отлично
|
|||
75
Конфигуратор1с
23.11.12
✎
01:58
|
Запрос3 = Новый Запрос;
Запрос3.УстановитьПараметр("Таблица", Таблица); Запрос3.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | Таблица.Кол |ПОМЕСТИТЬ ВТ |ИЗ | &Таблица КАК Таблица |; |ВЫБРАТЬ | ВТ.Кол |ИЗ | ВТ КАК ВТ"; Выборка3 = Запрос3.Выполнить(); Результат3 = Выборка3.Выбрать(); - я конечно туплю и спать хочу неимоверно, но разве это без менеджера временных таблиц работает? |
|||
76
volfy
23.11.12
✎
02:00
|
Из него но я и без него обошелся, как? не спрашивай , сам понятия не имею)
|
|||
77
volfy
23.11.12
✎
02:00
|
(73) ЛЕВОЕ СОЕДИНЕНИЕ? Или ВНутренний запрос?.... я в соединениях еще слаб....поэтому нублю =)
|
|||
78
Конфигуратор1с
23.11.12
✎
02:03
|
(77)Левое соединение. Если нет заказа будет значение нулл
|
|||
79
volfy
23.11.12
✎
02:04
|
понял, еще косяки есть?)
|
|||
80
Конфигуратор1с
23.11.12
✎
02:22
|
Запрос4 = Новый Запрос;
Запрос4.УстановитьПараметр("Таблица", Таблица); Запрос4.УстановитьПараметр("Номер", Номер.Номер); Запрос4.Текст = "ВЫБРАТЬ | * |ПОМЕСТИТЬ ВТ |ИЗ | &Таблица КАК Таблица | |ГДЕ | Таблица.Кол = &Номер |; |ВЫБРАТЬ | * |ИЗ | ВТ КАК ВТ"; Этот запрос тоже объединить с первым |
|||
81
Конфигуратор1с
23.11.12
✎
02:25
|
ТЧ.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Результат2.Товар, ИСТИНА); - вот это тот же запрос в цикле
|
|||
82
hhhh
23.11.12
✎
02:25
|
(79) ну вот это
Для Каждого Строка ИЗ Док.Товары Цикл Если Строка.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Строка(Элемент.Товар), Истина) зачем 55 раз ищешь одну и ту же номенклатуру? От этого она лучше найдется что ли? вот так можно НайдТовар = Справочники.Номенклатура.НайтиПоНаименованию(Строка(Элемент.Товар), Истина); Для Каждого Строка ИЗ Док.Товары Цикл Если Строка.Номенклатура = НайдТовар Тогда |
|||
83
Конфигуратор1с
23.11.12
✎
02:27
|
Таблица.Колонки.Добавить(Массив.Получить(СчКол).Получить(0), ОписаниеТиповЧ);
Исключение Таблица.Колонки.Добавить("Кол"+Формат(СчКол,"ЧГ=0"), ОписаниеТиповЧ); // !!!!!!! ИЗМЕНИТЬ КонецПопытки; Иначе Таблица.Колонки.Добавить("Кол"+Формат(СчКол,"ЧГ=0"), ОписаниеТиповЧ); КонецЕсли; КонецЦикла; - ты тут определил тип данных, зачем же в цикле ТЧ.КоличествоУпаковок = Число(Результат2.Кол1); ТЧ.Цена = Число(Результат2.Цена); |
|||
84
volfy
23.11.12
✎
04:14
|
(83) Тип определил как строка ...просто название переменной не поменял) .....это называется помоему быдлокод, я исправлю
|
|||
85
volfy
23.11.12
✎
05:03
|
Получается что запрос3 (ЗапросТри) вовсе не нужен?
|
|||
86
volfy
23.11.12
✎
22:53
|
как ни крутите....а запросы объединить не получается... =(
|
|||
87
Конфигуратор1с
23.11.12
✎
23:54
|
(86)еще как получится
|
|||
88
volfy
24.11.12
✎
09:55
|
можешь показать как ? может я просто не понимаю ...не дает соединять :(
|
|||
89
Fynjy
24.11.12
✎
10:10
|
Работает не трожь ...
|
|||
90
volfy
24.11.12
✎
11:58
|
(89) не вариант
|
|||
91
volfy
25.11.12
✎
05:11
|
задача решена не без помощи начальника:) если надо решение скину
|
|||
92
AlexNew
25.11.12
✎
06:51
|
Мне кажется // !!!!!!! ИЗМЕНИТЬ добавить во все строчки.
|
|||
93
volfy
25.11.12
✎
09:39
|
(92) Уже всё кординально изменил (начальник помог направил в нужное русло) всем спасибо =) есть новый вопрос, как в типовой УТ 11.0.9.12 программно добавить контрагента, с юридическим адресом и телефоном? никак не могу найти места где хранится эта информация... это справочник ВидыКонтактнойИнформации? если да то как же там привязывается строка именно к этому контрагенту? вообще непонятки((
|
|||
94
volfy
25.11.12
✎
09:48
|
Никто не знает?
|
|||
95
Гобсек
25.11.12
✎
09:50
|
(94)С УТ не имел дело, но в других конфах обычно есть регистр сведений "КонтактнаяИнформация". Адрес или телефон - это реквизит "ВидКонтактнойИнформации"
|
|||
96
volfy
25.11.12
✎
09:52
|
Вот в том то и дело что реквизитов адрес и телефон нет и такого регистра тоже =)
|
|||
97
volfy
25.11.12
✎
09:53
|
А хотя...сек ща проверю еще разок
|
|||
98
volfy
25.11.12
✎
09:57
|
"ВидКонтактнойИнформации" справочник есть ... в нем реквезиты с перечислениями ...ну там всё понятно...а регистра нету... =)
|
|||
99
volfy
25.11.12
✎
09:58
|
есть АдресныйКлассификатор... походу там всё храниться, осталось найти куда сунуть телефон
|
|||
100
volfy
25.11.12
✎
10:02
|
Нет ...и то не то и этого нет =(
|
|||
101
volfy
25.11.12
✎
10:19
|
Вроде пошло ...ща покручу поверчу потом если сделаю выложу решение
|
|||
102
volfy
25.11.12
✎
12:35
|
Да нифига ... как же всё запутано помогите кто нибудь((
|
|||
103
DrShad
25.11.12
✎
12:45
|
читать всю ветку лениво
|
|||
104
volfy
25.11.12
✎
12:50
|
ааах ок .... сам разберусь)
|
|||
105
DrShad
25.11.12
✎
12:52
|
резюмировал бы что не так, может быть и подсказал бы
|
|||
106
volfy
25.11.12
✎
13:05
|
(105) Надо программно заполнять Юридический адрес у контрагента.... Но если подскажешь как... (УТ 11.0.9.12 ) буду благодарен)
|
|||
107
volfy
25.11.12
✎
13:09
|
ой ...фактическии
|
|||
108
volfy
25.11.12
✎
13:09
|
ой , фактический адрес...но это сути дела не меняет
|
|||
109
DrShad
25.11.12
✎
13:29
|
ну а в чем собственно проблема? контактная информация это ТЧ контрагента
|
|||
110
volfy
25.11.12
✎
13:32
|
НЕЕЕТ =) в ней нет этого реквизита
|
|||
111
volfy
25.11.12
✎
13:32
|
в том то и дело =)
|
|||
112
volfy
25.11.12
✎
13:32
|
стоп...
|
|||
113
volfy
25.11.12
✎
13:34
|
тип, Вид, представление, значениеПолей, страна регион город Адрес электронной почты , доменное имя, номер телефона и номер телефона без кодов
|
|||
114
volfy
25.11.12
✎
13:34
|
всё... =)
|
|||
115
volfy
25.11.12
✎
13:34
|
АААААААА
|
|||
116
volfy
25.11.12
✎
13:34
|
кажись понял
|
|||
117
DrShad
25.11.12
✎
13:35
|
ну вот - что творит волшебный пендель :)))
|
|||
118
zak555
25.11.12
✎
13:35
|
автор пива клинского перепил ?
|
|||
119
volfy
25.11.12
✎
13:35
|
НоваяСтрока = ФормаНового.НаборКонтактнойИнформации.Добавить();
НоваяСтрока.Объект = ФормаНового.ЭтотОбъект; НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента; НоваяСтрока.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; НоваяСтрока.Представление = "Юридический адрес, дом, улица "; НоваяСтрока.Комментарий = "Комментарий Юридический"; чужое но кажись оно |
|||
120
volfy
25.11.12
✎
13:35
|
спасибо =) пробую
|
|||
121
volfy
25.11.12
✎
13:35
|
Кста пиво клинское просто ужааасно =)
|
|||
122
zak555
25.11.12
✎
13:36
|
разжижает мозг оно
|
|||
123
volfy
25.11.12
✎
13:39
|
=) так я его и не пью ...не намекай....я учусь ты знаешь)
|
|||
124
volfy
25.11.12
✎
13:39
|
авда муть ...сам открой и посмотри =)
|
|||
125
volfy
25.11.12
✎
13:41
|
Для Каждого Элемент ИЗ ТЗ Цикл
НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент(); НовыйКонтрагент.Наименование = Элемент.КонтактноеЛицо; НовыйКонтрагент.НаименованиеПолное = НовыйКонтрагент.Наименование; НовыйКонтрагент.Партнер = Справочники.Партнеры.НеизвестныйПартнер; НовыйКонтрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо; НовыйКонтрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо; НовыйКонтрагент.НомерТелефона = Элемент.Телефон; НовыйКонтрагент.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента; НовыйКонтрагент.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; НовыйКонтрагент.Представление = Элемент.КонтактноеЛицо; КонецЦикла; а вот ничего подобного ... ошибочка =( |
|||
126
volfy
25.11.12
✎
13:41
|
и при таком обращении и терез табличную часть... открывал в отладчике таб часть...она вообще пустая
|
|||
127
volfy
25.11.12
✎
13:43
|
Свойство Значение Тип
НовыйКонтрагент наталья николаевна якушкина СправочникОбъект.Контрагенты ВерсияДанных " " Строка Владелец Неопределено ДополнительнаяИнформация "" Строка ДополнительныеРеквизиты СправочникТабличнаяЧасть.Контрагенты.ДополнительныеРеквизиты СправочникТабличнаяЧасть.Контрагенты.ДополнительныеРеквизиты ДополнительныеСвойства Структура Структура ИНН "" Строка КПП "" Строка Код "" Строка КодПоОКПО "" Строка КонтактнаяИнформация СправочникТабличнаяЧасть.Контрагенты.КонтактнаяИнформация СправочникТабличнаяЧасть.Контрагенты.КонтактнаяИнформация Наименование "наталья николаевна якушкина" Строка НаименованиеПолное "наталья николаевна якушкина" Строка ОбменДанными ПараметрыОбменаДанными ПараметрыОбменаДанными Партнер Неизвестный партнер СправочникСсылка.Партнеры ПометкаУдаления Ложь Булево Предопределенный Ложь Булево Родитель СправочникСсылка.Контрагенты Ссылка СправочникСсылка.Контрагенты УдалитьФизЛицо СправочникСсылка.ФизическиеЛица ЭтоГруппа Ложь Булево ЭтотОбъект наталья николаевна якушкина СправочникОбъект.Контрагенты ЮрФизЛицо Юр. лицо ПеречислениеСсылка.ЮрФизЛицо ЮридическоеФизическоеЛицо ПеречислениеСсылка.ЮридическоеФизическоеЛицо вот во время отладки.... |
|||
128
zak555
25.11.12
✎
13:43
|
в (125) ты пытаешь создать объект справочник контрагенты
в (119) добавляешь на форму данные ты чего хочешь ? |
|||
129
volfy
25.11.12
✎
13:44
|
Контактная информация пустая
|
|||
130
volfy
25.11.12
✎
13:45
|
да тот код (119) вообще чужой ... я так не делал я пытался так же обратиться...а ничего подобного ...такая табличная часть не имеет таких реквезитов в конфигураторе ...а когда открываю форму в конфигураторе там даже эта табличная часть не отобраджается(
|
|||
131
volfy
25.11.12
✎
13:46
|
Я вообще понять не могу где хранится этот долбаный Фактический адрес
|
|||
132
volfy
25.11.12
✎
13:47
|
Задачу на 70% решил а тут ...жо....ра
|
|||
133
volfy
25.11.12
✎
13:48
|
Спасайте старейшины 1С =)
|
|||
134
volfy
25.11.12
✎
13:53
|
Кажись залез в дырочку ) ДобКонтИнфо = НовыйКонтрагент.КонтактнаяИнформация.Добавить();
ДобКонтИнфо.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; |
|||
135
zak555
25.11.12
✎
14:02
|
дырочка ? о_О
|
|||
136
zak555
25.11.12
✎
14:07
|
КонтактнаяИнформация -- это независимый непериодический регистр сведений
|
|||
137
volfy
25.11.12
✎
14:08
|
Так нет его в списке регистров сведений =(
|
|||
138
zak555
25.11.12
✎
14:09
|
там это где ?
|
|||
139
volfy
25.11.12
✎
14:12
|
ну в конфигураторе
|
|||
140
volfy
25.11.12
✎
14:13
|
в древе РС
|
|||
141
zak555
25.11.12
✎
14:13
|
а что за конфигурация у тебя ?
|
|||
142
volfy
25.11.12
✎
14:14
|
УТ 11.0.9.12
|
|||
143
volfy
25.11.12
✎
14:14
|
Последняя
|
|||
144
zak555
25.11.12
✎
14:15
|
в УТ хранится в ТЧ КонтактнаяИнформация справочника Контрагенты
|
|||
145
volfy
25.11.12
✎
14:18
|
Да может я опять перекипел ...(( процессор слабый не разогнанный.... (я про бошку) =) я просто не видел этой самой ТЧ так как её там просто нет... она есть в конфигураторе а на форме нет...
|
|||
146
volfy
25.11.12
✎
14:20
|
зачем так сделано?
|
|||
147
zak555
25.11.12
✎
14:23
|
это тебе знатоки ут 11 расскажут
|
|||
148
H A D G E H O G s
25.11.12
✎
14:24
|
(146) RLS
|
|||
149
H A D G E H O G s
25.11.12
✎
14:24
|
Но вообще конечно бредово сделано.
|
|||
150
zak555
25.11.12
✎
14:25
|
кстати, H A D G E H O G s как в ТЧ КонтактнаяИнформация добавить несколько элементов ? =)
|
|||
151
H A D G E H O G s
25.11.12
✎
14:25
|
Автору дать медаль за упорство и коммисовать.
|
|||
152
volfy
25.11.12
✎
14:25
|
=) Автору просто нравится эта работа
|
|||
153
H A D G E H O G s
25.11.12
✎
14:26
|
(150) Что за странные вопросы?
ТЧ.Добавить(); в цикле. |
|||
154
H A D G E H O G s
25.11.12
✎
14:26
|
Или загрузить из ТЗ.
|
|||
155
volfy
25.11.12
✎
14:26
|
А смысл добавлять несколько? если их всё равно не будет видно О_о
|
|||
156
H A D G E H O G s
25.11.12
✎
14:27
|
Все не читал. Автор, че не получается?
|
|||
157
zak555
25.11.12
✎
14:27
|
(153) только на форме ТП нет
|
|||
158
Fragster
гуру
25.11.12
✎
14:29
|
(153) аську включи, да!
|
|||
159
volfy
25.11.12
✎
14:29
|
Да вроде всё получается уже =) Суть в том что в форме НЕТ табличной части вообще... а сделано как таб часть ...
|
|||
160
H A D G E H O G s
25.11.12
✎
14:34
|
(159) Она создастся в ПриСозданииНаСервере()
|
|||
161
volfy
25.11.12
✎
14:50
|
а смысл? почему не простые реквизиты?
|
|||
162
volfy
25.11.12
✎
14:58
|
Юридический и Фактический адреса они же единичны... как одна фирма может быть в двух местах О_о
|
|||
163
H A D G E H O G s
25.11.12
✎
15:00
|
(162) Че не так?
|
|||
164
H A D G E H O G s
25.11.12
✎
15:01
|
Есть ЮрАдрес, а есть Факт адрес, например, у нас был пожар и мы полгода сидели по другому факт. адресу.
|
|||
165
volfy
25.11.12
✎
15:02
|
кажется понял ....ща скину код который получился...посмотрите
|
|||
166
Fragster
гуру
25.11.12
✎
15:02
|
(164) не идентичны, а ЕДИНИЧНЫ
|
|||
167
volfy
25.11.12
✎
15:05
|
зачем такой геморой не понимаю ...кто это делал
ДобКонтИнфо = НовыйКонтрагент.КонтактнаяИнформация.Добавить(); ДобКонтИнфо.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон; ДобКонтИнфо.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента; ДобКонтИнфо.НомерТелефона = Элемент.Телефон; НовыйКонтрагент.Записать(); КонецЦикла; |
|||
168
volfy
25.11.12
✎
15:06
|
На кой хер тут ВИД и ТИП ....
|
|||
169
volfy
25.11.12
✎
15:07
|
Для Каждого Элемент ИЗ ТЗ Цикл
НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент(); НовыйКонтрагент.Наименование = Элемент.КонтактноеЛицо; НовыйКонтрагент.НаименованиеПолное = НовыйКонтрагент.Наименование; НовыйКонтрагент.Партнер = Справочники.Партнеры.НеизвестныйПартнер; НовыйКонтрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо; НовыйКонтрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо; ДобКонтИнфо = НовыйКонтрагент.КонтактнаяИнформация.Добавить(); ДобКонтИнфо.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; ДобКонтИнфо.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента; ДобКонтИнфо.Представление = Элемент.АдресДоставки; ДобКонтИнфо.НомерТелефона = Элемент.Телефон; НовыйКонтрагент.Записать(); КонецЦикла; Вышло так...ладно вид понял зачем...нахера ТИП ... =( |
|||
170
volfy
25.11.12
✎
15:08
|
Адрес, Электрока, Веб, Другое, Телефон, Сайт. - Это варианты перечисления.... кто нибудь объяснит Зачем?!
|
|||
171
Fragster
гуру
25.11.12
✎
15:09
|
(168) ну, на самом деле типа Вид = телефон, тип = телефон, тип = мобильныйтелефон и т.п... это поскольку 1с не поддерживает в РС множество записей с одинаковыми измерениями. А вообще - с учетом того, что тех же мобильников может быть несколько - логичнее было бы все-таки подчиненный справочник.
|
|||
172
Fragster
гуру
25.11.12
✎
15:09
|
(170) тяжелое наследие клюшек, когда не было предопределенных элементов
|
|||
173
volfy
25.11.12
✎
15:09
|
Если тут всего по 1 реквезиту по идее надо заполнить ... и в 1 строке я указываю и адрес и телефон... и электронку...
|
|||
174
volfy
25.11.12
✎
15:10
|
Просто пропущу ка я это ... закомментю пусть начальник решит
|
|||
175
volfy
27.11.12
✎
00:29
|
Кто знает как преобразовать строчку так что бы каждая первая буква слова в ней была заглавной
|
|||
176
volfy
27.11.12
✎
00:29
|
????
|
|||
177
Fragster
гуру
27.11.12
✎
08:14
|
есть встроенная функция для этого
|
|||
178
Fragster
гуру
27.11.12
✎
08:15
|
Встроенные функции языка (Script functions)
ТРег (Title) Синтаксис: ТРег(<Строка>) Параметры: <Строка> (обязательный) Тип: Строка. Преобразуемая строка. Возвращаемое значение: Тип: Строка. Описание: Преобразует строку к титульному регистру. Это означает, у каждого слова первый символ преобразуется к титульному регистру или, если титульный регистр для символа не определен, то к верхнему регистру. Все остальные символы преобразуются к нижнему регистру. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Пример: Фамилия = ТРег(Стр); |
|||
179
volfy
27.11.12
✎
13:13
|
спасибо)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |