Black Friday: Cashback 35% при покупке 1С лицензий на счет INFOSTART.RU

Организация сложных фильтров объединенных условием и/или (Работа со списками значений)

Публикация № 57181

Разработка - Практика программирования

10
1С:Предприятие 7.7
Предположим у нас есть справочник, с кучей подчиненных справочников. И нам хотелось бы организовать в форме списка отбор элементов справочника по полям подчиненных справочников, причем, для простоты, используя два (хотя можно и более) условия отбора, объединенных условиями и/или. Или просто нам не помешают приведенные функции работы со списками значений:-)
Основное - возможность получить объединение и пересечение двух или более множеств, используя приведенные функции работы со СпискамиЗначений.
Один из возможных простых способов:

Пишем простенькие функции отбора (столько, сколько вариантов отбора мы хотим):
// На подобии этой, отбор списка владельцев подчиненного справочника, по полю
// подчиненного справочника. Возвращает список значений владельцев подчиненного 
// справочника.
// ----------------------------------------------------------------------
Функция гл7ПолучитьСписокСертификатовПоНомеруРамы(Знач НомерРамы) Экспорт
	Перем СпрРамыДвигатели, СпСертификатов;
	
	НомерРамы=СокрЛП(НомерРамы);
	
	СпСертификатов=СоздатьОбъект("СписокЗначений");
	СпрРамыДвигатели=СоздатьОбъект("Справочник.СертификатыРамыДвигатели");

	СпрРамыДвигатели.ВыбратьЭлементыПоРеквизиту("НомерРамы",НомерРамы,0,0);
	Пока СпрРамыДвигатели.ПолучитьЭлемент()=1 Цикл
		Если СпрРамыДвигатели.ПометкаУдаления()=1 Тогда
			Продолжить;
		КонецЕсли;
		
		ТекВлад=СпрРамыДвигатели.ТекущийЭлемент().Владелец;
		Если СпСертификатов.НайтиЗначение(ТекВлад)<1 Тогда
			СпСертификатов.ДобавитьЗначение(ТекВлад);
		КонецЕсли;
	КонецЦикла;
	
	Возврат СпСертификатов;
КонецФункции	// гл7ПолучитьСписокСертификатовПоНомеруРамы
// ----------------------------------------------------------------------


После чего мы можем получить нужное количество списков элементов, удовлетворяющих нужному количеству условий. И теперь, чтобы объединить эти условия, используем следующие функции работы со списками значений:
// ----------------------------------------------------------------------
Функция гл8УдалитьДвойниковИзСписка(Знач Сп1) Экспорт
	Перем Сп, СпУдалПоз, СпУдалЗнач;
	
	Сп=СоздатьОбъект("СписокЗначений"); 
	СпУдалПоз=СоздатьОбъект("СписокЗначений"); 
	СпУдалЗнач=СоздатьОбъект("СписокЗначений"); 
	
	Если ВРег(СокрЛП(ТипЗначенияСтр(Сп1))) <> ВРег("СписокЗначений") Тогда
		Возврат Сп;
	КонецЕсли;
	
	Если Сп1.РазмерСписка()<1 Тогда
		Возврат Сп;
	КонецЕсли;
	
	N=Сп1.РазмерСписка();
	
	i=0;
	Пока i<N Цикл
		i=i+1;
		Sx="";
		V=Сп1.ПолучитьЗначение(i,Sx);

		Если (СпУдалЗнач.НайтиЗначение(V)<1) Тогда
			j=0;
			Пока j<N Цикл
				j=j+1;
				Sx2="";
				V2=Сп1.ПолучитьЗначение(j,Sx2);
				Попытка
					Если (V=V2) И (i<>j) И (СпУдалЗнач.НайтиЗначение(V2)>0) Тогда
						СпУдалПоз.ДобавитьЗначение(j);
					КонецЕсли;	
					Если (V=V2) Тогда
						СпУдалЗнач.ДобавитьЗначение(V2,Sx2);
					КонецЕсли;
				Исключение
				КонецПопытки;
			КонецЦикла;
		КонецЕсли;
	КонецЦикла;

	i=0;
	Пока i<N Цикл
		i=i+1;
		Sx="";
		V=Сп1.ПолучитьЗначение(i,Sx); 
		Если СпУдалПоз.НайтиЗначение(i)<1 Тогда
			Сп.ДобавитьЗначение(V,Sx);	
		КонецЕсли;
	КонецЦикла;

	Возврат Сп;
КонецФункции	// гл8УдалитьДвойниковИзСписка
// ----------------------------------------------------------------------

// ----------------------------------------------------------------------
Функция гл8ПолучитьПересечениеСписков(Знач Сп1, Знач Сп2) Экспорт
	Перем Сп;

	Сп=СоздатьОбъект("СписокЗначений");
	
	Если ВРег(СокрЛП(ТипЗначенияСтр(Сп1))) <> ВРег("СписокЗначений") Тогда
		Возврат Сп;
	КонецЕсли;

	Если ВРег(СокрЛП(ТипЗначенияСтр(Сп2))) <> ВРег("СписокЗначений") Тогда
		Возврат Сп;
	КонецЕсли;
	
	Если Сп1.РазмерСписка()<1 Тогда
		Возврат Сп;
	КонецЕсли;

	Если Сп2.РазмерСписка()<1 Тогда
		Возврат Сп;
	КонецЕсли;

	Сп1=гл8УдалитьДвойниковИзСписка(Сп1);
	Сп2=гл8УдалитьДвойниковИзСписка(Сп2);
	
	N=Сп1.РазмерСписка();

	i=0;
	Пока i<N Цикл
		i=i+1;
		Sx="";
		V=Сп1.ПолучитьЗначение(i,Sx);
		Если Сп2.НайтиЗначение(V)>0 Тогда
			Сп.ДобавитьЗначение(V,Sx);
		КонецЕсли;
	КонецЦикла;

	Возврат Сп;
КонецФункции	// гл8ПолучитьПересечениеСписков
// ----------------------------------------------------------------------

// ----------------------------------------------------------------------
Функция гл8ПолучитьОбъединениеСписков(Знач Сп1, Знач Сп2) Экспорт
	Перем Сп;

	Сп=СоздатьОбъект("СписокЗначений");

	Если ВРег(СокрЛП(ТипЗначенияСтр(Сп1))) <> ВРег("СписокЗначений") Тогда
		Сп1=СоздатьОбъект("СписокЗначений");
	КонецЕсли;

	Если ВРег(СокрЛП(ТипЗначенияСтр(Сп2))) <> ВРег("СписокЗначений") Тогда
		Сп2=СоздатьОбъект("СписокЗначений");
	КонецЕсли;
	
	Если Сп1.РазмерСписка()<1 Тогда
		Если Сп2.РазмерСписка()<1 Тогда
			Возврат Сп;
		Иначе
			Сп2.Выгрузить(Сп);
			Возврат Сп;
		КонецЕсли;
	КонецЕсли;

	Если Сп2.РазмерСписка()<1 Тогда
		Если Сп1.РазмерСписка()<1 Тогда
			Возврат Сп;
		Иначе
			Сп1.Выгрузить(Сп);
			Возврат Сп;
		КонецЕсли;	
	КонецЕсли;
	
	Сп1=гл8УдалитьДвойниковИзСписка(Сп1);
	Сп2=гл8УдалитьДвойниковИзСписка(Сп2);
	
	N=Сп1.РазмерСписка();

	i=0;
	Пока i<N Цикл
		i=i+1;
		Sx="";
		V=Сп1.ПолучитьЗначение(i,Sx);
		Поз=Сп2.НайтиЗначение(V);
		Если Поз>0 Тогда
			Сп2.УдалитьЗначение(Поз);
		КонецЕсли;
	КонецЦикла;
	
	Сп=гл9ОбъединитьСпискиЗначений(Сп1,Сп2);
	
	Возврат Сп;
КонецФункции	// гл8ПолучитьОбъединениеСписков
// ----------------------------------------------------------------------

Использовать можно следующим образом (упрощенно):
Перем СпСертификатов, СпСертификатов1, СпИтоговый;

СпСертификатов=гл7ПолучитьСписокСертификатовПоНомеруРамы(ЗначениеВВидеСтроки);
СпСертификатов1=гл7ПолучитьСписокСертификатовПоНомеруДвигателя(ЗначениеВВидеСтроки1);

// И
СпИтоговый=гл8ПолучитьПересечениеСписков(СпСертификатов,СпСертификатов1);
ИспользоватьСписокЭлементов(СпИтоговый);

// ИЛИ
СпИтоговый=гл8ПолучитьОбъединениеСписков(СпСертификатов,СпСертификатов1);
ИспользоватьСписокЭлементов(СпИтоговый);

Забыл, используется еще одна функция работы со списками:

Автор: Сергей Попов, Усинск, Коми
// ----------------------------------------------------------------------
//Объединяются списки значений
//Функция возвращает суммарный список
//При этом, Спис1 выгружается, а Спис2 построчно добавляется в конец списка
Функция гл9ОбъединитьСпискиЗначений(Спис1,Спис2) Экспорт
	//_new_ 19.03.2003 сп_
	Перем Res;
	Res=СоздатьОбъект("СписокЗначений");
	Если ВРег(СокрЛП(ТипЗначенияСтр(Спис1)))= ВРег("СписокЗначений") Тогда
		Спис1.Выгрузить(Res);
	КонецЕсли;
	Если ВРег(СокрЛП(ТипЗначенияСтр(Спис2)))= ВРег("СписокЗначений") Тогда
		N=Спис2.РазмерСписка();
		Если N>0 Тогда 
			i=0;
			Пока i<N Цикл
				i=i+1;
				Sx="";
				V=Спис2.ПолучитьЗначение(i,Sx);
				Res.ДобавитьЗначение(V,Sx);
			КонецЦикла;
		КонецЕсли;
	КонецЕсли;
	Возврат Res;
КонецФункции //гл9ОбъединитьСпискиЗначений
// ----------------------------------------------------------------------
10

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. venger 23.07.08 12:08 Сейчас в теме
Забыл, используется еще одна функция работы со списками:

Автор: Сергей Попов, Усинск, Коми
Код
//===================================
//Объединяются списки значений
//Функция возвращает суммарный список
//При этом, Спис1 выгружается, а Спис2 построчно добавляется в конец списка
Функция гл9ОбъединитьСпискиЗначений(Спис1,Спис2) Экспорт
   //_new_ 19.03.2003 сп_
   Перем Res;
   Res=СоздатьОбъект("СписокЗначений");
   Если ВРег(СокрЛП(ТипЗначенияСтр(Спис1)))= ВРег("СписокЗначений") Тогда
      Спис1.Выгрузить(Res);
   КонецЕсли;
   Если ВРег(СокрЛП(ТипЗначенияСтр(Спис2)))= ВРег("СписокЗначений") Тогда
      N=Спис2.РазмерСписка();
      Если N>0 Тогда 
         i=0;
         Пока i<N Цикл
            i=i+1;
            Sx="";
            V=Спис2.ПолучитьЗначение(i,Sx);
            Res.ДобавитьЗначение(V,Sx);
         КонецЦикла;
      КонецЕсли;
   КонецЕсли;
   Возврат Res;
КонецФункции //гл9ОбъединитьСпискиЗначений
//=========================================
Показать полностью
2. poppy 3353 23.07.08 13:24 Сейчас в теме
Чем хороша такая конструкция?
Код
N=Спис2.РазмерСписка();
Если N>0 Тогда 
   i=0;
   Пока i<N Цикл
      i=i+1;
       //...
   КонецЦикла;
КонецЕсли;
Показать полностью


Почему не используется такая?
Код
Пока i = 1 По Спис2.РазмерСписка() Цикл
   //...
КонецЦикла;
Показать полностью

4. venger 23.07.08 14:03 Сейчас в теме
(2) Чем хороша такая конструкция?

А чем плоха? Чем они вообще отличаются?:-)

Это все-равно, что спорить, что плохо, что индексы ТаблицЗначений или СписковЗначений начинаются с 1, а не с 0.
Я так с нуля люблю, но это дело привычки.

1С язык мне не родной, я его вспоминаю, когда в 1С'не наваять что нуно:-)
3. JohnyDeath 295 23.07.08 13:54 Сейчас в теме
Люди, курите прямые запросы! Зачем такой геморрой?
5. venger 23.07.08 14:05 Сейчас в теме
(3) Затем что в прямых запросах нельзя строки неограниченной длины обрабатывать. Или по части поля сравнивать.

Хотя во многих случаях это хороший вариант, более быстрый.

Да и функции эти - работы со СпискамиЗначений - можно использовать и в других случаях, не только для этой задачи.
6. JohnyDeath 295 23.07.08 14:15 Сейчас в теме
(5) не понял.
1) Ты хочешь устанавливать фильтры на основе реквизитов, которые имеют неопределённую длину?
2) Что значит "в прямых запросах нельзя по части поля сравнивать"? (желательно пример)
7. venger 23.07.08 14:24 Сейчас в теме
(6)

1) Я не то, чтобы хочу, но если будет такая необходимость организовать фильтрацию или поиск, то какие проблемы:-)

2) Например, поле номер рамы: LAPP12345ERT569835789. Пользователям удобно искать или фильтровать не полный номер рамы, а только по последним символам, допустим по 5789.
8. venger 23.07.08 14:28 Сейчас в теме
И вообще, злые вы....:-)

Хоть бы плюсик поставили:-)
9. venger 23.07.08 15:42 Сейчас в теме
По сути, ценно тут то, что можно получить объединение и пересечение двух множеств.

А для каких задач это использовать (фильтры это так, пример), это уже второй вопрос.
10. tango 484 23.07.08 16:11 Сейчас в теме
11. venger 23.07.08 16:46 Сейчас в теме
Тут пришла мысль:-)

Объединение можно получить еще одним способом.

Слить два списка вместе, а потом удалить двойников из результирующего.

Хоть это тоже самое, только в профиль:-)

Что-то типа такого:
Код
// ----------------------------------------------------------------------
Функция гл8ПолучитьОбъединениеСписков(Знач Сп1, Знач Сп2) Экспорт
   Перем Сп;

   Сп=СоздатьОбъект("СписокЗначений");

   Если ВРег(СокрЛП(ТипЗначенияСтр(Сп1))) <> ВРег("СписокЗначений") Тогда
      Сп1=СоздатьОбъект("СписокЗначений");
   КонецЕсли;

   Если ВРег(СокрЛП(ТипЗначенияСтр(Сп2))) <> ВРег("СписокЗначений") Тогда
      Сп2=СоздатьОбъект("СписокЗначений");
   КонецЕсли;
   
   Если Сп1.РазмерСписка()<1 Тогда
      Если Сп2.РазмерСписка()<1 Тогда
         Возврат Сп;
      Иначе
         Сп2.Выгрузить(Сп);
         Возврат Сп;
      КонецЕсли;
   КонецЕсли;

   Если Сп2.РазмерСписка()<1 Тогда
      Если Сп1.РазмерСписка()<1 Тогда
         Возврат Сп;
      Иначе
         Сп1.Выгрузить(Сп);
         Возврат Сп;
      КонецЕсли;   
   КонецЕсли;

   Сп=гл9ОбъединитьСпискиЗначений(Сп1,Сп2);
   Сп=гл8УдалитьДвойниковИзСписка(Сп);

   Возврат Сп;
КонецФункции   // гл8ПолучитьОбъединениеСписков
// ----------------------------------------------------------------------
Показать полностью

12. JohnyDeath 295 23.07.08 17:25 Сейчас в теме
Venger,
фильтровать не полный номер рамы, а только по последним символам, допустим по 5789
это очень даже просто реализуется в прямых запросах так:
Код
 ...
Where НомерРамы LIKE '%5789' 
Показать полностью

Я не злой, я просто пропагандирую 1с++ ;)
По соединениям/объединениям: http://www.1cpp.ru/docum/icpp/html/IndexedTable.html#innerjoin
13. JohnyDeath 295 23.07.08 17:28 Сейчас в теме
+(12) она, кстати, и с буфером обмена умеет работать: http://www.1cpp.ru/docum/icpp/html/extobjs.html#id101 ;)
14. JohnyDeath 295 23.07.08 17:51 Сейчас в теме
По текущей задаче (отбор элементов по полям подч. справочника):
предложенный тобой код будет работать только для полей, у которых стоит галочк "Сортировка", т.к
Код
СпрРамыДвигатели.ВыбратьЭлементыПоРеквизиту("НомерРамы",НомерРамы,0,0);
Показать полностью


Примерно так будет выглядеть твоя задача с использованием 1sqlite http://infostart.ru/projects/2127/
Код
БД = СоздатьОбъект("SQLiteBase");
БД.Открыть(":memory:");            
Запрос=БД.НовыйЗапрос();
ТекстЗапроса="
SELECT Товары.ID [Товар :Справочник.Номенклатура]
FROM Справочник_Номенклатура as Товары
INNER JOIN Справочник_СертификатыРамыДвигатели as СРД ON СРД.PARENTEXT = Товары.ID
Where СРД.НомерРамы LIKE '%5789'"; 

спНужныхТоваров=СоздатьОбъект("СписокЗначений");
Запрос.ВыполнитьЗапрос(ТекстЗапроса, спНужныхТоваров);
Показать полностью

ВСЁ! Если надо ещё и по другим подч. справочникам или добавить условие, то это легко формируется динамически, т.к. ТекстЗапроса - это строка и ей оперировать очень просто!
А если условий будет 10? У тебя списки будут 10 раз объединятся и фильтроваться??
15. venger 23.07.08 18:11 Сейчас в теме
С этими ВК (1sqlite и 1С++) - да согласен, задача фильтров лучше решается.

Пасибки, многие ВК я еще не изучал на предмет использования. FormEx смотрел только одним глазком, что он может.

Но, во-первых, эти функции для списоков могут пригодится и для других целей возможно. Фильтры были как пример для этих функций.

Во-вторых, использовать чужие ВК - это зависимость, а если там баг или глюк, а если надо что-то особенное.
Поэтому я склонен идти по пути "придумывания велосипеда", чтоб когда надо будет "придумывать космический корабль", уже быть готовым к этому:-)

Вот собираюсь основательно взяться за изучение Delphi вообще, и в приложении к 1С (ВК и ВП) в частности.
Правда времени как всегда мало на это все:-)

Но в любом случае спасибо, я всегда рад советам.
16. JohnyDeath 295 23.07.08 23:14 Сейчас в теме
(15) Разработчики 1с++ всегда рады помочь: есть форум, багзилла. К тому же исходники 1с++ ты всегда можешь скачать и сам у себя собрать свою собственную 1с++.

А в каких, например, случаях могут понадобится такие объединения списков? (просто интересно)

Лучше возьмись за изучение С++, оно к 1С ближе ;)
Удачи!
17. venger 24.07.08 12:07 Сейчас в теме
(16) >А в каких, например, случаях могут понадобится такие объединения списков?

Надо подумать:-) У кого-то есть идеи?:-) Самому интересно:-)

(16) >Лучше возьмись за изучение С++, оно к 1С ближе ;)

C++ года четыре назад в универе учил, в основном под консоль правда, но обновить знания и пойти дальше не помешает и в С++, конечно.
Но и Delphi не помешает;-)

Кстати, сам язык 1С 7.7 больше Бейсик напоминает. У кого какие ассоциации?
Понятно, что 1С на С++ писался, поэтому и ближе. Верно?

В любом случае, я рад, что есть кому подсказать, так что Вам все-равно пасибки:-)

18. mirt1207 30.07.08 11:28 Сейчас в теме
У меня работает отбор по нескольким свойствам, создал справочник, где папка - свойство, а содержимое-возможные выборы. Меньше геморроя при заведении нового свойства и т.д. Единственно, гемор. при заполнении в номенклатуре, но написал табличную обработку...
Вообще Юзеры довольны, когда из громадного списка мебели отбираешь : тумбочки, нужного цвета
и нужной коллекции... (Я использовал СписокВСтроку и обратно для поиска по ТЗ)
Оставьте свое сообщение

См. также

Дистрибьюция 7.7. Часть 1. Жизненный цикл заявки покупателя. Одна заявка покупателя, много адресов доставки. 1

Статья Программист Нет файла v7.7 1С7:Комплекс 1С7:ТиС УУ Бесплатно (free) Практика программирования Адаптация типовых решений

Описан способ работы с учетом расписания с приоритетными покупателями - торговыми сетями (основными покупателями) в торговой или комплексной учетной системе на 1С 7.7. Множественная заявка покупателя на несколько торговых точек.

14.10.2019    1422    ksnik    0       

Вакансия Автор новостных обзоров на тему 1С и бухучета, По совместительству Промо

Редакция Infostart.ru будет рада сотрудничеству с 1С-специалистом, умеющим и любящим излагать свои мысли в письменной форме. Если вы работали в IT-изданиях или имеете опыт ведения технологического блога/канала/группы, если сможете сделать обзор обработок из каталога infostart.ru/public/all/, то у вас большое преимущество.

Проверка часового пояса 9

Статья Программист Нет файла v7.7 Windows Бесплатно (free) Практика программирования

При использовании терминалок для удаленных баз, иногда при входе в базу данных необходимо исключить возможность входа пользователей с компьютеров с другим часовым поясом. Например, работают в Новосибирской базе с временем UTC +6 и пытаются зайти в базу с UTC +3.

16.05.2016    8676    kudenzov    3       

Вакансия Программист, аналитик, эксперт 1С Промо

Приглашаем к сотрудничеству квалифицированных специалистов 1С из любых регионов, готовых работать в удаленном режиме, а также с возможностью при необходимости выезда к заказчику.

[ПОЛЕЗНЯШКА, 7.7] Как посчитать итоги по документам черным запросом с изподвывертом? 13

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Практика программирования

Мелкая полезняшка, считает запросом итоговую сумму документов и количество документов.

12.03.2016    15984    CheBurator    18       

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция 111

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования WEB

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    49546    Serginio    33       

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д. 37

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент WEB

Очень часто нужно при работе с HTTP сервисами или сайтами использовать Асинхронные HTTP запросы, отправку на сервер нескольких файлов, использование сжатия трафика. Эта статья про то, как этого легко добиться.

09.03.2016    26475    Serginio    22       

Использование классов .Net в 1С для новичков 148

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент Универсальные функции

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    64555    Serginio    104       

Перенос данных БП 2.0 => УТ 11 / КА 2 / ERP 2 (перенос остатков, документов и справочников из "1С:Бухгалтерия предприятия 8", ред. 2.0 в "1С:Управление торговлей 8", ред.11 / КА 2 / ERP 2). Обновлено до УТ 11.4.10.х, КА 2.4.10.х, ERP 2.4.10.х! Промо

Перенос позволяет загрузить в УТ 11 / КА 2 / ERP 2 документы за выбранный период, справочную информацию и остатки по счетам бух. учета. Переносятся остатки денежных средств, взаиморасчетов, остатки товаров и материалов на складах. Переносятся девятнадцать основных видов документов за выбранный период и вся нормативно-справочная информация. Есть фильтр по организации. Если нужно переносить что-то дополнительно, то обычно бесплатно дорабатываю правила (перед покупкой согласуйте необходимые доработки).

29700 руб.

Пример HTTP запроса к УТМ ЕГАИС на платформе 1С 7.7 15

Статья Программист Нет файла v7.7 1cv7.md Россия Windows Оптовая торговля Розничная торговля Бесплатно (free) Практика программирования Внешние источники данных

Запрос реализован на объекте ServerXMLHTTP из встроенной в Windows библиотеки MSXML, результатом запроса является XML объект DOMDocument из той же библиотеки MSXML со встроенным интерфейсом его обработки

16.12.2015    20767    Palmer1976    3       

Экспорт нескольких MXL таблиц в один XLS файл, на отдельные листы. Простой алгоритм 20

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Статья посвящена распространённому вопросу - как сохранить несколько таблиц (отчетов) в формате MXL, с которым работает 1С, на отдельные листы одного Excel файла. Освещается простой алгоритм решения проблемы штатными средствами, без использования внешних модулей и библиотек (не относящихся к 1С и Excel).

23.11.2015    14511    etmarket    14       

Cashback 35% при покупке 1С лицензий на счет INFOSTART.RU с 27.11 по 04.12 Промо

Оформляете заказ на 1С лицензии или конфигурации. Получаете 35% от стоимости на счет в профиле INFOSTART.RU. Выбираете сервисы и продукты на сумму кэшбэка.

Процедура расшифровки ячейки таблицы в отчетах 1С 7.7 11

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Практика программирования Универсальные функции

Хочу поделиться с вами универсальной процедурой для расшифровки ячеек печатной формы отчетов в 1С 7.7.

24.09.2015    14277    Anzhey    13       

Универсальный способ сравнения таблиц 16

Статья Программист Нет файла v7.7 v8 Бесплатно (free) Практика программирования

На эту тему уже есть статьи, но этот способ нигде не описан. Хотя я его использую с тех пор, как занимаюсь программированием. Его преимущество в простоте и универсальности: можно применять на 1С, SQL, а также в любом другом языке программирования.

05.07.2015    15681    json    1       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Числа прописью в родительном падеже в 7.7? Легко! 13

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Практика программирования

Вывод числительных прописью в родительном падеже штатными средствами в три строчки кода.

20.06.2015    10488    gimalaj    3       

Хитрости сохранения табличного документа в Excel для дальнейшей работы с ним 78

Статья Программист Нет файла v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл. Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.

16.01.2015    73403    shmellevich    35       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Исправление в типовой комплексной конфигурации глобальной функции глВсеРеквизитыДокументаЗаполнены() 4

Статья Программист Нет файла v7.7 1С7:Комплекс Россия Windows Бесплатно (free) Практика программирования

В типовых конфигурациях глобальная функция глВсеРеквизитыДокументаЗаполнены() не работает с реквизитами табличной части. Данная статья содержит текст исправленной функции, корректно проверяющей табличную часть.

20.08.2014    6326    hvv2002    0       

Очный семинар по регулярному менеджменту Александра Фридмана "Вы или Хаос", 12 декабря 2019 г. , Санкт-Петербург Промо

Семинар по регулярному менеджменту от Александра Фридмана для собственников, первых лиц и топов. Технология управленческого планирования, комплексного управления временем и другими ресурсами, выполнением поручений, делами, информацией, контактами (встречи-звонки-почта).

от 11000 до 29000 рублей

ЗаполнитьЗначенияСвойств - заставляем работать в 7.7 11

Статья Программист Нет файла v7.7 1cv7.md Бесплатно (free) Практика программирования

Если вы используете в работе 1С:Предприятие 8.х, то наверняка знакомы и с замечательной системной процедурой, как ЗаполнитьЗначенияСвойств(). Ее использование помогает значительно упростить написание программного кода в ряде случае, делает его (код) более наглядным и простым. Но что же делать тем, кто до сих пор использует (постоянно или иногда) 1С:Предприятие 7.7?

24.07.2014    19262    tomvlad    5       

Онлайн-интенсив "Бизнес-процессы для подготовки к экзамену 1С:Специалист по платформе" 12 декабря 2019 г. Промо

На интенсиве будут рассмотрены все теоретические вопросы, связанные с устройством механизма бизнес-процессов – это необходимо для успешной сдачи экзамена 1С:Специалист по платформе. Также, в качестве практического примера, будет решена задача, аналогичная экзаменационной.

777 рублей

Полезные функции. Склонение (должность и фамилия подписантов). Любой язык 3

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования

Уехал директор в командировку, отпуск... , оставил доверенность на хозяйственные операции на другого сотрудника. Все договора и другие документы в обмороке - "подписант" теперь другой, по тексту тоже много правок... Пересмотрел много публикаций, вариантов много, не приглянулось. Сделал свой "Баян" . У меня всего-то крутится пять фигурантов ... Нет простого, наглядного и всепогодного варианта без языкового барьера. Всем процессом управляет пользователь.

03.03.2014    15728    kompas-dm    5       

Перенос данных КА 1.1 => ERP 2 (ЕРП) (обработка переноса документов, остатков и справочной информации из "1С:Комплексная автоматизация, ред. 1.1" в "1С:ERP Управление предприятием, ред 2"). Обновлен до КА 1.1.115.х и ERP 2.4.10.х Промо

Обработка позволяет переносить из КА 1.1 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления в случае выхода новых релизов конфигураций 1С.

29700 руб.

Реализация Ctrl+Z в 1С 7.7 (ТиС) 7

Статья Программист Нет файла v7.7 1С7:ТиС Windows Бесплатно (free) Практика программирования

В семерке отсутствует возможность отменять последнее действие в формах документов. В данной статье будет рассмотрен пример реализации данной функции. Возможно, кому-нибудь пригодится.

15.07.2013    5909    a.o.popova    10       

Копия напечатанного документа или как спрятать документ. 2

Статья Программист Нет файла v7.7 Бесплатно (free) Журнал регистрации Практика программирования

Возникла необходимость, чтобы при печати определённого документа (даже потом не сохранённого), создавалась его копия, т.е. запись всех напечатанных документов. (В результате чего возникла такая потребность, полагаюсь на вашу фантазию). В итоге получилось два варианта решения, остановился на втором.

11.04.2013    13559    Dima_    8       

1С:Предприятие через Интернет. 1С:Fresh Промо

Ведение бухгалтерского и налогового учет, сдача отчетности, управление бизнесом из любой точки мира. Привычные программы «1С» через Интернет без приобретения коробочных программ.

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Автосохранение документа в 1С 7.7 3

Статья Программист Нет файла v7.7 1cv7.md Россия Windows Бесплатно (free) Практика программирования

В данной статье мы рассмотрим автосохранение документа в 1С 7.7!

22.03.2013    11481    aagubarev    25       

Конвертация данных 2.1 (2.1.3.1) 1С 7.7 - 1С 8.Х передача параметра ПКО 14

Статья Системный администратор Программист Нет файла v7.7 v8 КД Бесплатно (free) Практика программирования Перенос данных из 1С7.7 в 1C8.X

Передача параметров по умолчанию доступна только для баз 1С 8.х -1С 8.х. Показан пример, как передать параметры из 1С 7.7 - 1С 8.х

10.12.2012    22761    serg_gres    6