|
Сравнить данные табличной части и регистра накопления | ☑ | ||
---|---|---|---|---|
0
volfy
15.11.12
✎
03:04
|
Помогите пожалуйста...уже кучу времени бьюсь и мозг вскипел а задачу решить надо...
Есть Документ "ОтчетыПоПроделаннымРаботам" В табличной части которого укзывается Платформа(8.2 например) ВерсияПлатформы(8.2.16.ххх) Конфигурация(УПП) РелизКонфигурации(х.х.хх) И Регистр сведений ТекущиеРелизыПлатформы у которого также есть измерения ВерсияПлатформы КонфигурацияОбновляемая и ресурс ВерсияКонфигурации, Надо что бы при записи документа проверялось есть ли такая конфигурация (которая указывается в табличной части документа) в регистре сведений и если нет то добавлять ... |
|||
1
AET
15.11.12
✎
04:03
|
(0)Зачем о регистре накопления в теме...?
Присоедини в запросе к ТЧ слева РС и выбери без NULL слева. Их и добавляй. Ну или просто пиши все подряд в РС в Попытке, запись с имеющимися измерениями не запишится. |
|||
2
programmer1c_
63 15.11.12
✎
07:54
|
(1)
"Ну или просто пиши все подряд в РС в Попытке, запись с имеющимися измерениями не запишится." Улыбнуло - представляю, большая база, сотни тысяч документов и пиши "все подряд" :) |
|||
3
AET
15.11.12
✎
09:11
|
(2) метод неправильный, но рабочий.
Расскажите пожалуйста как сотни тысяч документов влияют на процесс записи одного типа Акта выполненных работ? |
|||
4
volfy
16.11.12
✎
01:04
|
Сейчас доделаю и выложу код ...прошу потом его строго осудить и если будет можно упростить
|
|||
5
volfy
16.11.12
✎
16:24
|
Подскажите почему не происходит запись в регистр... Присылаю модули
|
|||
6
volfy
16.11.12
✎
16:25
|
Модуль формы:
....прошлые процедуры ЗадатьВопрос = ПроверитьНаНовыйРелизУКонтрагента(Объект.Ссылка, Объект.Дата); Если ЗадатьВопрос = "Да" Тогда Вариант = СпроситьУПользователя(); Если Вариант = "Да" Тогда Запись(Объект.Ссылка, Объект.Дата); ИначеЕсли Вариант = "Отмена" Тогда Отказ = Истина; КонецЕсли; КонецЕсли; КонецПроцедуры &НаКлиенте Функция СпроситьУПользователя() Ответ = Вопрос("В табличной части содержаться ранее не используемые конфигурации, добавить новые конфигурации в список?", РежимДиалогаВопрос.ДаНетОтмена,,,"Конфигурация не найдена.",); Если Ответ = КодВозвратаДиалога.Да Тогда Возврат "Да"; ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда Возврат "Нет"; ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда Возврат "Отмена"; КонецЕсли; КонецФункции &НаСервере Функция ПроверитьНаНовыйРелизУКонтрагента(ТекущийДокумент, Дата); Добавляем = "Нет"; Запрос2 = Новый Запрос; Запрос2.Текст = "ВЫБРАТЬ | ТекущиеРелизыПлатформы.КонфигурацияОбновляемая, | ТекущиеРелизыПлатформы.ВерсияКонфигурации, | ОтчетОПроделаннойРаботе.Ссылка, | ОтчетОПроделаннойРаботе.Конфигурации.( | Платформа, | ВерсияПлатформы, | Конфигурация, | ВерсияКонфигурации | ) |ИЗ | РегистрСведений.ТекущиеРелизыПлатформы КАК ТекущиеРелизыПлатформы, | Документ.ОтчетОПроделаннойРаботе КАК ОтчетОПроделаннойРаботе |ГДЕ | ОтчетОПроделаннойРаботе.Ссылка = &Ссылка"; Запрос2.УстановитьПараметр("Ссылка", ТекущийДокумент); Выборка2 = Запрос2.Выполнить(); Результат2 = ВЫборка2.Выбрать(); ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("ВерсияКонфигурации"); ТЗ.Колонки.Добавить("ВерсияПлатформы"); ТЗ.Колонки.Добавить("КонфигурацияОбновляемая"); Если Результат2.Количество() = 0 Тогда Для Каждого Элемент ИЗ ТекущийДокумент.Конфигурации Цикл Запись = ТЗ.Добавить(); Запись.ВерсияКонфигурации = Элемент.ВерсияКонфигурации; Запись.ВерсияПлатформы = Элемент.Платформа; Запись.КонфигурацияОбновляемая = Элемент.Конфигурация; КонецЦикла; КонецЕсли; Пока Результат2.Следующий() Цикл Док = Результат2.Ссылка.ПолучитьОбъект(); Для Каждого Элемент ИЗ Док.Конфигурации Цикл Если НЕ Результат2.ВерсияКонфигурации = Элемент.ВерсияКонфигурации Тогда Запись = ТЗ.Добавить(); Запись.ВерсияКонфигурации = Элемент.ВерсияКонфигурации; Запись.ВерсияПлатформы = Элемент.Платформа; Запись.КонфигурацияОбновляемая = Элемент.Конфигурация; КонецЕсли; КонецЦикла; КонецЦикла; Если ТЗ.Количество() > 0 Тогда Возврат "Да"; КонецЕсли; КонецФункции &НаСервере Процедура Запись(ТекущийДокумент, Дата) Экспорт Запрос2 = Новый Запрос; Запрос2.Текст = "ВЫБРАТЬ | ТекущиеРелизыПлатформы.КонфигурацияОбновляемая, | ТекущиеРелизыПлатформы.ВерсияКонфигурации, | ОтчетОПроделаннойРаботе.Ссылка, | ОтчетОПроделаннойРаботе.Конфигурации.( | Платформа, | ВерсияПлатформы, | Конфигурация, | ВерсияКонфигурации | ) |ИЗ | РегистрСведений.ТекущиеРелизыПлатформы КАК ТекущиеРелизыПлатформы, | Документ.ОтчетОПроделаннойРаботе КАК ОтчетОПроделаннойРаботе |ГДЕ | ОтчетОПроделаннойРаботе.Ссылка = &Ссылка"; Запрос2.УстановитьПараметр("Ссылка", ТекущийДокумент); Выборка2 = Запрос2.Выполнить(); Результат2 = ВЫборка2.Выбрать(); ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("ВерсияКонфигурации"); ТЗ.Колонки.Добавить("ВерсияПлатформы"); ТЗ.Колонки.Добавить("КонфигурацияОбновляемая"); Если Результат2.Количество() = 0 Тогда Для Каждого Элемент ИЗ ТекущийДокумент.Конфигурации Цикл Запись = ТЗ.Добавить(); Запись.ВерсияКонфигурации = Элемент.ВерсияКонфигурации; Запись.ВерсияПлатформы = Элемент.Платформа; Запись.КонфигурацияОбновляемая = Элемент.Конфигурация; КонецЦикла; КонецЕсли; Пока Результат2.Следующий() Цикл Док = Результат2.Ссылка.ПолучитьОбъект(); Для Каждого Элемент ИЗ Док.Конфигурации Цикл Если НЕ Результат2.ВерсияКонфигурации = Элемент.ВерсияКонфигурации Тогда Запись = ТЗ.Добавить(); Запись.ВерсияКонфигурации = Элемент.ВерсияКонфигурации; Запись.ВерсияПлатформы = Элемент.Платформа; Запись.КонфигурацияОбновляемая = Элемент.Конфигурация; КонецЕсли; КонецЦикла; КонецЦикла; Док = РеквизитФормыВЗначение("Объект"); Док.ПишемИзМодуляОбъектаЭтогоДокумента(ТЗ); КонецПроцедуры |
|||
7
volfy
16.11.12
✎
16:25
|
Модуль объекта Процедура ПишемИзМодуляОбъектаЭтогоДокумента(ТЗ) Экспорт
Движения.ТекущиеРелизыПлатформы.Записывать = Истина; Для Каждого Строка Из ТЗ Цикл Набор = Движения.ТекущиеРелизыПлатформы.Добавить(); Набор.ВерсияКонфигурации = Строка.ВерсияКонфигурации; Набор.ВерсияПлатформы = Строка.ВерсияПлатформы; Набор.КонфигурацияОбновляемая = Строка.КонфигурацияОбновляемая; Набор.Период = ТекущаяДата(); КонецЦикла; КонецПроцедуры |
|||
8
volfy
16.11.12
✎
16:27
|
может изза того что регистр режим записи подчинение регистратору?
|
|||
9
volfy
16.11.12
✎
16:29
|
дадада ...извините ступил)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |