Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Где то валялся дубликатор документов/справочников? (число прочтений - 1655 )
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Где то валялся дубликатор документов/справочников?
12. Октября 2007 :: 10:57
Печать  
тока где?
хочется понять, че надо переделать под реконект-нативе в конфе, хочу поэкспериментировать..
  
Наверх
IP записан
 
freagle
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 87
Зарегистрирован: 21. Июня 2006
Re: Где то валялся дубликатор документов/справочни
Ответ #1 - 12. Октября 2007 :: 11:22
Печать  
Если имеешь в виду "удаление дублирующихся элементов справочников с заменой оных в иных объектов конфигурации" то ссылку не помню, но выслать могу.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Где то валялся дубликатор документов/справочни
Ответ #2 - 12. Октября 2007 :: 11:36
Печать  
такая ерт-шина которая просто плодит элементы справочников и документов в базе.
Даже на ИТС валялась..
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Где то валялся дубликатор документов/справочни
Ответ #3 - 12. Октября 2007 :: 12:03
Печать  
Зафигачил простенькую БД, дубликатор вручную.
текст дубликатора:
Код
Выбрать все
Перем гМаксКолЭлем;
Перем гСписСправочников;


// ОпределитьсяСоСправочником()
Функция ОпределитьсяСоСправочником(псВид, псИтерация)
	ЗначВозврата = 0;
	вСпр = СоздатьОбъект("Справочник."+псВид);
	псИтерация = псИтерация + 102;
	Пока псИтерация>=гМаксКолЭлем Цикл
	    псИтерация = Цел(псИтерация / 12);
	КонецЦикла;
	вКод = Формат(псИтерация,"Ч(0)6");
	Если вСпр.НайтиПоКоду(вКод) = 1 Тогда
	    ЗначВозврата = вСпр.ТекущийЭлемент();
	Иначе

		Сообщить("Не нашли:"  + псВид + " код: " + вКод);
	КонецЕсли;

	Возврат ЗначВозврата;
КонецФункции // ОпределитьсяСоСправочником()


//*******************************************
Процедура Сформировать()

	гСписСправочников = СоздатьОбъект("СписокЗначений");
	гСписСправочников.ДобавитьЗначение("Номенклатура");
	гСписСправочников.ДобавитьЗначение("Контрагенты");
	гСписСправочников.ДобавитьЗначение("МестаХранения");
	гСписСправочников.ДобавитьЗначение("Фирмы");

	СЦ = 0;
	Для СЦ = 1 По гСписСправочников.РазмерСписка() Цикл
		вСпрВид = гСписСправочников.ПолучитьЗначение(СЦ);
		вСпр = СоздатьОбъект("Справочник." + вСпрВид);

		СЦ_2 = 0;
		Для СЦ_2 = 1 По гМаксКолЭлем Цикл
			вСпр.Новый();
			вСпр.Наименование = вСпрВид + " № " + СЦ_2;
			Если вСпрВид = "Номенклатура" Тогда
			    вСпр.Цена = СЦ_2 * 3;
			КонецЕсли;
			Попытка
				вСпр.Записать();
				Состояние(вСпрВид+":" + вСпр.Наименование);
			Исключение
				Состояние(вСпрВид+":" + вСпр.Наименование+" ->" + ОписаниеОшибки());
			КонецПопытки;
		КонецЦикла;
	КонецЦикла;

	вДок = СоздатьОбъект("Документ.Продажа");
	вТекДата = НачДата; вИтерация = 0;
	Пока вТекДата<=КонДата Цикл
		СЦ = 0;
		Для СЦ = 1 По 50 Цикл

			вИтерация = вИтерация + 1;

			вДок.Новый();
			вДок.ДатаДок = вТекДата;
			вДок.УстановитьНовыйНомер("П-");
			вДок.Контрагент = ОпределитьсяСоСправочником("Контрагенты",вИтерация);
			вДок.Склад = ОпределитьсяСоСправочником("МестаХранения",вИтерация);
			вДок.Фирма = ОпределитьсяСоСправочником("Фирмы",вИтерация);
			вДок.Автор = глПользователь;
			СЦ_С = 0;
			Для СЦ_С = 1 По Мин(15,вИтерация) Цикл
				вИтерация = вИтерация + 1;
				вДок.НоваяСтрока();
				вДок.Товар = ОпределитьсяСоСправочником("Номенклатура",вИтерация);
				вДок.Количество = СЦ_С+СЦ;
				вДок.Сумма = вИтерация;
			КонецЦикла;
			Попытка
				вДок.Записать();
				вДок.Провести();
				Состояние(""+вТекДата);
			Исключение
				Сообщить("!!!" + ОписаниеОшибки());
			КонецПопытки;
		КонецЦикла;
		вТекДата = вТекДата + 1;
	КонецЦикла;


КонецПроцедуры


//============================================================
Процедура ПриОткрытии()
	КонДата = ТекущаяДата();
	НачДата = КонДата - 1000;
КонецПроцедуры // ПриОткрытии

гМаксКолЭлем = 4000;
 



Как думаете хватит доков для тестирования?
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать