|
Обработка переноса данных из ТЧ справочника в независимый регистр сведений | ☑ | ||
---|---|---|---|---|
0
malex18
11.08.17
✎
16:12
|
Подскажите как сделать обработку переноса данных
|
|||
1
rudnitskij
11.08.17
✎
16:16
|
Файл - Новый - Внешняя обработка...
|
|||
2
rudnitskij
11.08.17
✎
16:17
|
Регистр создали хоть уже?
|
|||
3
Nolan
11.08.17
✎
16:18
|
(0) в цикле для каждой строки ТЧ делай новую запись регистра
|
|||
4
ДядяМитяй
11.08.17
✎
16:23
|
Переходите с 3.0 на 2.0? Регистр Контактная информация? ))))
Если разовая операция - однозначно проще через табличный документ. |
|||
5
malex18
11.08.17
✎
16:26
|
Старший Товарищ скопировал этот код и сказал"попробуй"
в итоге код записывает в регистр только менеджеров.а суму продажи процент вознараждения не пишет Процедура ОборотСуммаПриИзмененииНаСервере() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Менеджеры.Ссылка КАК Ссылка, | ЕСТЬNULL(ПродажиОбороты.СуммаОборот, 0) КАК СуммаОборот | ПОМЕСТИТЬ ОборотыМенеджеровВЗаданномПериоде |ИЗ | Справочник.Менеджеры КАК Менеджеры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК ПродажиОбороты | ПО (ПродажиОбороты.Менеджер = Менеджеры.Ссылка); | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЕСТЬNULL(ТабМенеджеры.ПроцентВознаграждения, 0) КАК ПроцентВознаграждения, | ОборотыМенеджеровВЗаданномПериоде.Ссылка КАК Ссылка, | ОборотыМенеджеровВЗаданномПериоде.СуммаОборот * ЕСТЬNULL(ТабМенеджеры.ПроцентВознаграждения,0) / 100 КАК Вознаграждение |ПОМЕСТИТЬ НастройкиВознагражденияНижеСуммыОборота |ИЗ | ОборотыМенеджеровВЗаданномПериоде КАК ОборотыМенеджеровВЗаданномПериоде | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Менеджеры.НастройкаВознаграждения КАК ТабМенеджеры | ПО (ОборотыМенеджеровВЗаданномПериоде.Ссылка = ТабМенеджеры.Ссылка | И ОборотыМенеджеровВЗаданномПериоде.СуммаОборот >= ЕСТЬNULL(ТабМенеджеры.СуммаПродажЗаМесяц, 0)); | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | НастройкиВознагражденияНижеСуммыОборота.Ссылка КАК Ссылка, | МАКСИМУМ(НастройкиВознагражденияНижеСуммыОборота.ПроцентВознаграждения) КАК ПроцентВознаграждения, | МАКСИМУМ(НастройкиВознагражденияНижеСуммыОборота.Вознаграждение) КАК Вознаграждение |ИЗ | НастройкиВознагражденияНижеСуммыОборота КАК НастройкиВознагражденияНижеСуммыОборота | |СГРУППИРОВАТЬ ПО | НастройкиВознагражденияНижеСуммыОборота.Ссылка"; Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(Объект.Период)); Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца(Объект.Период)); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НаборЗаписей = РегистрыСведений.НастройкаВознаграждения.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Менеджеры.Установить(ВыборкаДетальныеЗаписи.Ссылка); НаборЗаписей.Отбор.Период.Установить(НачалоМесяца(Объект.Период)); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Период = НачалоМесяца(Объект.Период); НоваяЗапись.Менеджеры = ВыборкаДетальныеЗаписи.Ссылка; НоваяЗапись.СуммаПродаж = ВыборкаДетальныеЗаписи.Вознаграждение; НоваяЗапись.ПроцентВознаграждения = ВыборкаДетальныеЗаписи.ПроцентВознаграждения; НаборЗаписей.Записать(); КонецЦикла; |
|||
6
malex18
11.08.17
✎
16:26
|
*сумму
|
|||
7
rudnitskij
11.08.17
✎
16:29
|
(6) попробуйте использовать менеджер записей
|
|||
8
rudnitskij
11.08.17
✎
16:30
|
МенеджерЗаписей = РегистрыСведений.НастройкаВознаграждения.СоздатьМенеджерЗаписей();
МенеджерЗаписей.Измерение = Измерение; МенеджерЗаписей.Ресурс = Ресурс; МенеджерЗаписей.Записать(); |
|||
9
malex18
11.08.17
✎
16:45
|
Не выходит.Может запрос неправильный сделал?что там может быть не так?
|
|||
10
rudnitskij
11.08.17
✎
16:45
|
(9) вы мой код так и вставили? без изменений?
|
|||
11
malex18
11.08.17
✎
16:46
|
Нет, изменил)
|
|||
12
welwel
11.08.17
✎
16:47
|
Если уж о всех вариантах говорить, то КД 2
|
|||
13
malex18
11.08.17
✎
16:49
|
что такое "КД2"?
|
|||
14
rudnitskij
11.08.17
✎
16:53
|
(11) можно ваш код посмотреть? Без текста запроса
|
|||
15
Ёпрст
11.08.17
✎
16:54
|
(9) проверь, что сюда устанавливаешь:
Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(Объект.Период)); Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца(Объект.Период)); |
|||
16
malex18
11.08.17
✎
16:57
|
Это все,что есть в форме обработки
&НаСервере Процедура ОборотСуммаПриИзмененииНаСервере() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Менеджеры.Ссылка КАК Ссылка, | ЕСТЬNULL(ПродажиОбороты.СуммаОборот, 0) КАК СуммаОборот | ПОМЕСТИТЬ ОборотыМенеджеровВЗаданномПериоде |ИЗ | Справочник.Менеджеры КАК Менеджеры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК ПродажиОбороты | ПО (ПродажиОбороты.Менеджер = Менеджеры.Ссылка); | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЕСТЬNULL(ТабМенеджеры.ПроцентВознаграждения, 0) КАК ПроцентВознаграждения, | ОборотыМенеджеровВЗаданномПериоде.Ссылка КАК Ссылка, | ОборотыМенеджеровВЗаданномПериоде.СуммаОборот * ЕСТЬNULL(ТабМенеджеры.ПроцентВознаграждения,0) / 100 КАК Вознаграждение |ПОМЕСТИТЬ НастройкиВознагражденияНижеСуммыОборота |ИЗ | ОборотыМенеджеровВЗаданномПериоде КАК ОборотыМенеджеровВЗаданномПериоде | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Менеджеры.НастройкаВознаграждения КАК ТабМенеджеры | ПО (ОборотыМенеджеровВЗаданномПериоде.Ссылка = ТабМенеджеры.Ссылка | И ОборотыМенеджеровВЗаданномПериоде.СуммаОборот >= ЕСТЬNULL(ТабМенеджеры.СуммаПродажЗаМесяц, 0)); | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | НастройкиВознагражденияНижеСуммыОборота.Ссылка КАК Ссылка, | МАКСИМУМ(НастройкиВознагражденияНижеСуммыОборота.ПроцентВознаграждения) КАК ПроцентВознаграждения, | МАКСИМУМ(НастройкиВознагражденияНижеСуммыОборота.Вознаграждение) КАК Вознаграждение |ИЗ | НастройкиВознагражденияНижеСуммыОборота КАК НастройкиВознагражденияНижеСуммыОборота | |СГРУППИРОВАТЬ ПО | НастройкиВознагражденияНижеСуммыОборота.Ссылка"; Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(Объект.Период)); Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца(Объект.Период)); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НаборЗаписей = РегистрыСведений.НастройкаВознаграждения.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Менеджеры.Установить(ВыборкаДетальныеЗаписи.Ссылка); НаборЗаписей.Отбор.Период.Установить(НачалоМесяца(Объект.Период)); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Период = НачалоМесяца(Объект.Период); НоваяЗапись.Менеджеры = ВыборкаДетальныеЗаписи.Ссылка; НоваяЗапись.СуммаПродаж = ВыборкаДетальныеЗаписи.Вознаграждение; НоваяЗапись.ПроцентВознаграждения = ВыборкаДетальныеЗаписи.ПроцентВознаграждения; НаборЗаписей.Записать(); КонецЦикла; КонецПроцедуры &НаКлиенте Процедура Перенести(Команда) ОборотСуммаПриИзмененииНаСервере(); КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) Объект.Период = ТекущаяДата(); КонецПроцедуры |
|||
17
rudnitskij
11.08.17
✎
16:58
|
(16) как выглядит код, который я предлагал и вы изменили под себя? Вы скрываете его чтоле?
|
|||
18
rudnitskij
11.08.17
✎
16:59
|
как мы найдем ошибку в коде который не видим?
|
|||
19
malex18
11.08.17
✎
17:00
|
Результат же не изменился.вернулся к набору записей.так указали.через набор делать.значит в запросе видимо что-то не так
|
|||
20
rudnitskij
11.08.17
✎
17:02
|
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл МенеджерЗаписей = РегистрыСведений.НастройкаВознаграждения.СоздатьМенеджерЗаписей(); МенеджерЗаписей.Период = НачалоМесяца(Объект.Период); МенеджерЗаписей.Менеджеры = ВыборкаДетальныеЗаписи.Ссылка; МенеджерЗаписей.СуммаПродаж = ВыборкаДетальныеЗаписи.Вознаграждение; МенеджерЗаписей.ПроцентВознаграждения = ВыборкаДетальныеЗаписи.ПроцентВознаграждения; МенеджерЗаписей.Записать(); КонецЦикла; вот это вот не работает? |
|||
21
malex18
11.08.17
✎
17:08
|
{Обработка.ПереносДанных.Форма.Форма.Форма(42)}: Метод объекта не обнаружен (СоздатьМенеджерЗаписей)
МенеджерЗаписей = РегистрыСведений.НастройкаВознаграждения.СоздатьМенеджерЗаписей(); |
|||
22
malex18
11.08.17
✎
17:08
|
| НастройкиВознагражденияНижеСуммыОборота.Ссылка";
Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(Объект.Период)); Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца(Объект.Период)); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл МенеджерЗаписей = РегистрыСведений.НастройкаВознаграждения.СоздатьМенеджерЗаписей(); МенеджерЗаписей.Период = НачалоМесяца(Объект.Период); МенеджерЗаписей.Менеджеры = ВыборкаДетальныеЗаписи.Ссылка; МенеджерЗаписей.СуммаПродаж = ВыборкаДетальныеЗаписи.Вознаграждение; МенеджерЗаписей.ПроцентВознаграждения = ВыборкаДетальныеЗаписи.ПроцентВознаграждения; МенеджерЗаписей.Записать(); КонецЦикла; |
|||
23
rudnitskij
11.08.17
✎
17:09
|
у вас какое приложение?
|
|||
24
rudnitskij
11.08.17
✎
17:09
|
упр или обычное?
|
|||
25
malex18
11.08.17
✎
17:09
|
Простите, не силен...)
разницу не понимаю пока что |
|||
26
rudnitskij
11.08.17
✎
17:10
|
(25) в модуле формы есть слова &НаКлиенте, &НаСервере ?
|
|||
27
rudnitskij
11.08.17
✎
17:11
|
в справочниках, документах...
|
|||
28
malex18
11.08.17
✎
17:11
|
у товарища код взял весь.у товарища работает все правильно.
значит в запросе что-то не так скорее всего.может названия там не совпадают.но ошибок не выдает.странно |
|||
29
malex18
11.08.17
✎
17:12
|
да есть эти слова)
|
|||
30
rudnitskij
11.08.17
✎
17:12
|
тогда процедура заполнения регистра должна выполняться на сервере
|
|||
31
rudnitskij
11.08.17
✎
17:13
|
(30) может у вас регистр не независимый, тогда менеджер записи не сработает
|
|||
32
malex18
11.08.17
✎
17:13
|
ну да. это все на сервере
|
|||
33
rudnitskij
11.08.17
✎
17:14
|
нажмите в предприятии Справка - О программе
Что там у вас написано? |
|||
34
malex18
11.08.17
✎
17:14
|
регистр независимый точно
|
|||
35
malex18
11.08.17
✎
17:15
|
1С:Предприятие 8.3 (8.3.8.2137)
|
|||
36
malex18
11.08.17
✎
17:15
|
я же говорю,у товарища работает данный код.скопировал к себе.не работает
|
|||
37
rudnitskij
11.08.17
✎
17:16
|
(35) больше ничего не написано? ни одной букві?
|
|||
38
malex18
11.08.17
✎
17:17
|
Стажировка 1
Файловый (без сжатия) C:\Users\1\Documents\Стажировка 1 Тонкий клиент Информационная база: русский (Россия), Сеанс: русский Текущая: Локальный HASP4 ORGL8 10, получило клиентское приложение |
|||
39
malex18
11.08.17
✎
17:17
|
Больше ничегО)
|
|||
40
malex18
11.08.17
✎
17:17
|
Платформа: 1С:Предприятие 8.3 (8.3.8.2137)
Конфигурация: Конфигурация Режим: Файловый (без сжатия) Приложение: Тонкий клиент Локализация: Информационная база: русский (Россия), Сеанс: русский Вариант интерфейса: Такси |
|||
41
rudnitskij
11.08.17
✎
17:21
|
(40) попробуйте вариант из (5), но без отбора по периоду
|
|||
42
malex18
11.08.17
✎
17:23
|
Снова ничего не изменилось.
В регистр уходят все менеджеры,которые у меня есть.а сумма продажи процент вознаграждения им не записывается |
|||
43
Ёпрст
11.08.17
✎
17:25
|
(42) нету продаж по менеджерам за период
|
|||
44
h-sp
11.08.17
✎
17:28
|
(42) может
| И ОборотыМенеджеровВЗаданномПериоде.СуммаОборот >= ЕСТЬNULL(ТабМенеджеры.СуммаПродажЗаМесяц, 0)); не выполняется. ОборотыМенеджеровВЗаданномПериоде.СуммаОборот маленькая, поэтому вознаграждение не положено. не заработали. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |