powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / 1C 7.7 в Mysql
3 сообщений из 3, страница 1 из 1
1C 7.7 в Mysql
    #36547647
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, уважаемый гуру. У меня есть внешняя обработка , она выгружает данные из Торговли и склада 9.2 в mysql базу на сервер.
Вопрос 1: обработка выгружает фотографии из "Справочник-Номенклатура" и снизу кнопка фотография.(рис1)
код обработки следующий
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
Процедура ВыбратьТовары(ИсходныеДанные)
	Дата1 = ПредДата;
	Дата2 = ТекДата;
	ПроверитьДаты(Дата1,Дата2);
	ИсходныеДанные.НоваяКолонка("Код");
	ИсходныеДанные.НоваяКолонка("Группа");
	ИсходныеДанные.НоваяКолонка("Кузов");
	ИсходныеДанные.НоваяКолонка("Наименование");
	ИсходныеДанные.НоваяКолонка("Статус");
	ИсходныеДанные.НоваяКолонка("Артикул");
	ИсходныеДанные.НоваяКолонка("Производитель");
	ИсходныеДанные.НоваяКолонка("ЕстьПроизводитель");
	ИсходныеДанные.НоваяКолонка("МаленькаяФотография");
	ИсходныеДанные.НоваяКолонка("БольшаяФотография");
	ИсходныеДанные.НоваяКолонка("Вес");
	ИсходныеДанные.НоваяКолонка("ЕдИзмВеса");
	ИсходныеДанные.НоваяКолонка("Остаток"); 
	ИсходныеДанные.НоваяКолонка("ЕдИзм"); 
	ИсходныеДанные.НоваяКолонка("Описание");
	 
	ОсновнойТипЦены = Параметры.Получить("ОсновнойТипЦены");
	ОсновнаяВалюта = Параметры.Получить("ОсновнаяВалюта");
	
	ВидСвойстваПроизводитель = ВыбратьВидСвойства("Производитель");
	
	Если ОсновнойТипЦены.Рассчитывается =  1  Тогда
		ТекТипЦены = ОсновнойТипЦены.БазовыйТипЦен;
	Иначе
		ТекТипЦены = ОсновнойТипЦены;
	КонецЕсли;
	Запрос = СоздатьОбъект("Запрос"); 
	ТекстЗапроса = 	"
	|Период с Дата1 по Дата2;
	|Номенклатура = Справочник.Номенклатура.ТекущийЭлемент, Регистр.ОстаткиТМЦ.Номенклатура.ТекущийЭлемент, Регистр.РезервыТМЦ.Номенклатура.ТекущийЭлемент, Справочник.Цены.Владелец;
	|Фирма = Регистр.ОстаткиТМЦ.Фирма, Регистр.РезервыТМЦ.Фирма;
	|Склад = Регистр.ОстаткиТМЦ.Склад, Регистр.РезервыТМЦ.Склад;
	
	|Количество = Регистр.ОстаткиТМЦ.Количество;
	|КоличествоРез = Регистр.РезервыТМЦ.Количество; 
	|Цена = Справочник.Цены.Цена;
	|";
	    
	Если Параметры.Получить("ТолькоВыгружаемые") =  1  Тогда
		ТекстЗапроса = ТекстЗапроса + "
		|НеВыгружать = Справочник.Номенклатура.НеВключатьВпрайс, Регистр.ОстаткиТМЦ.Номенклатура.НеВключатьВпрайс, Регистр.РезервыТМЦ.Номенклатура.НеВключатьВпрайс, Справочник.Цены.Владелец.НеВключатьВпрайс; 
		|";
	КонецЕсли;
	
	ТекстЗапроса = ТекстЗапроса + "
	|Функция ЦенаТовара = Сумма(Цена);
	|Функция КоличествоКонОст = КонОст(Количество);
	|Функция КоличествоРезКонОст = КонОст(КоличествоРез);
	|Группировка Номенклатура без групп;
	|";

	Если Параметры.Получить("ТолькоВыгружаемые") =  1  Тогда
		ТекстЗапроса = ТекстЗапроса + "
		|Условие (НеВыгружать = 0); 
		|";
	КонецЕсли;
    
	СписокУсловий = СоздатьОбъект("СписокЗначений");
	СписокУсловий.ДобавитьЗначение("Номенклатура");
	СписокУсловий.ДобавитьЗначение("Фирма");
	СписокУсловий.ДобавитьЗначение("Склад");
	СписокУсловий.ДобавитьЗначение("ТипЦен");
	
	УстановитьУсловия(ТекстЗапроса,СписокУсловий);

	Запрос.Выполнить(ТекстЗапроса);
	Пока Запрос.Группировка("Номенклатура") >  0  Цикл  
		ТекОстаток = Запрос.КоличествоКонОст - Запрос.КоличествоРезКонОст;
		
		Если Параметры.Получить("ТолькоВНаличии") =  1  Тогда
			Если ТекОстаток <=  0  Тогда
				Продолжить;
			КонецЕсли;
		КонецЕсли;
		ИсходныеДанные.НоваяСтрока(); 
		ИсходныеДанные.ТекущийЭлемент = Запрос.Номенклатура;
		ИсходныеДанные.МаленькаяФотография = "";
		ИсходныеДанные.БольшаяФотография = "_LRG";
		ИсходныеДанные.Код = Запрос.Номенклатура;
		ИсходныеДанные.Группа = Запрос.Номенклатура.Родитель; 
		
		ИсходныеДанные.Наименование = СокрЛП(Запрос.Номенклатура.ПолнНаименование);
		ИсходныеДанные.Артикул = СокрЛП(Запрос.Номенклатура.Код);
		ИсходныеДанные.ЕдИзм = СокрЛП(Запрос.Номенклатура.БазоваяЕдиница.ОКЕИ); 
		ИсходныеДанные.ЕдИзмВеса = СокрЛП(Константа.ЕдиницаВеса); 
		ИсходныеДанные.Производитель = ПолучитьЗначениеСвойства(Запрос.Номенклатура,ВидСвойстваПроизводитель);
		Если ПустоеЗначение(ИсходныеДанные.Производитель) =  0  Тогда
			ИсходныеДанные.ЕстьПроизводитель = "1";
		Иначе
			ИсходныеДанные.ЕстьПроизводитель = "0";
		КонецЕсли;   
		ИсходныеДанные.Вес = Запрос.Номенклатура.БазоваяЕдиница.Вес;
		ИсходныеДанные.Остаток = ТекОстаток;
		
		ИсходныеДанные.Статус = "Y";
		
		ТекКомм = Запрос.Номенклатура.Комментарий;
		ТекКомментарий="";
		Если ПустаяСтрока(СокрЛП(СтрПолучитьСтроку(ТекКомм, 1 )))= 0  Тогда
			СчетчикЦикла =  0 ;
			Для СчетчикЦикла =  1  По СтрКоличествоСтрок(ТекКомм) Цикл
				Если ПустаяСтрока(СокрЛП(СтрПолучитьСтроку(ТекКомм,СчетчикЦикла)))= 0  Тогда
					ТекКомментарий=ТекКомментарий+СтрЗаменить(СокрЛП(СтрПолучитьСтроку(ТекКомм,СчетчикЦикла)),"'",Симв( 34 ))+"<br>";
				Иначе
					ТекКомментарий=ТекКомментарий+"<br>";
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
		ИсходныеДанные.Описание = ТекКомментарий;
	КонецЦикла; 
КонецПроцедуры

Но в базе фотография хранится "Накладная-табличная часть-подбор" (рис2)

Как мне обратиться в этому полю чтобы выдернуть фото. Посмотрите процедуру, нужно изменить ссылку до фото.

Вопрос 2 аналогичный: Цены хранятся не в Справочники-Номенклатура-Фара, снизу кнопка Справочники-цены, а в накладной где и фото.
Как выбрать цену исходя из кода обработки?

Заранее благодарен.
...
Рейтинг: 0 / 0
1C 7.7 в Mysql
    #36547652
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Цены выбираются так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
Процедура ВыбратьЦены(ИсходныеДанные)
	Дата1 = ПредДата;
	Дата2 = ТекДата;
	ПроверитьДаты(Дата1,Дата2);
	
	ВыгрТипы = СоздатьОбъект("СписокЗначений");
	ТипыОтбора = СоздатьОбъект("СписокЗначений");
	
	Запрос = СоздатьОбъект("Запрос");
	ТекстЗапроса = 	"
	|Период с ТекДата по ТекДата;
	|ТипЦены = Справочник.ТипыЦен.ТекущийЭлемент;
	|Группировка ТипЦены Без Групп;
	|";
	СписокУсловий = СоздатьОбъект("СписокЗначений");
	СписокУсловий.ДобавитьЗначение("ТипЦены");
	УстановитьУсловия(ТекстЗапроса, СписокУсловий);
	
	Запрос.Выполнить(ТекстЗапроса);
	Пока Запрос.Группировка( 1 ) >  0  Цикл 
		ВыгрТипы.ДобавитьЗначение(Запрос.ТипЦены); 
		ТекТип = Запрос.ТипЦены;
		Если ТипыОтбора.НайтиЗначение(ТекТип) =  0  Тогда
			ТипыОтбора.ДобавитьЗначение(ТекТип);
		КонецЕсли;
	КонецЦикла;
	
	ВидСвойстваКартинка = ВыбратьВидСвойства("Маленькая картинка");
	ВидСвойстваБольшаяКартинка = ВыбратьВидСвойства("Картинка");
	
	ТаблицаЦен = СоздатьОбъект("ТаблицаЗначений");
	ТаблицаЦен.НоваяКолонка("Тип");
	ТаблицаЦен.НоваяКолонка("Цена");
	ТаблицаЦен.НоваяКолонка("Валюта");
	
	ИсходныеДанные.НоваяКолонка("КодТовара");
	ИсходныеДанные.НоваяКолонка("ТипЦены");
	ИсходныеДанные.НоваяКолонка("Цена");
	ИсходныеДанные.НоваяКолонка("ВалютаЦены");
	
	ОсновнойТипЦены = Параметры.Получить("ОсновнойТипЦен");
	ОсновнаяВалюта = Параметры.Получить("ОсновнаяВалюта");
	
	ТекТипЦены = ОсновнойТипЦены;
	
	Запрос = СоздатьОбъект("Запрос"); 
	ТекстЗапроса = 	"
	|Период с Дата1 по Дата2;
	|Номенклатура = Справочник.Номенклатура.ТекущийЭлемент, Регистр.ОстаткиТМЦ.Номенклатура.ТекущийЭлемент, Регистр.РезервыТМЦ.Номенклатура.ТекущийЭлемент, Справочник.Цены.Владелец;
	|Фирма = Регистр.ОстаткиТМЦ.Фирма, Регистр.РезервыТМЦ.Фирма;
	|Склад = Регистр.ОстаткиТМЦ.Склад, Регистр.РезервыТМЦ.Склад;
	|Количество = Регистр.ОстаткиТМЦ.Количество;
	|КоличествоРез = Регистр.РезервыТМЦ.Количество;
	|ТипЦен = Справочник.Цены.ТипЦен;
	|Цена = Справочник.Цены.Цена;
	|Валюта = Справочник.Цены.Валюта;
	|";
	
	Если Параметры.Получить("ТолькоВВыгружаемые") = "Да" Тогда
		ТекстЗапроса = ТекстЗапроса + "
		|НеВыгружать = Справочник.Номенклатура.НеВключатьВпрайс, Регистр.ОстаткиТМЦ.Номенклатура.НеВключатьВпрайс, Регистр.РезервыТМЦ.Номенклатура.НеВключатьВпрайс, Справочник.Цены.Владелец.НеВключатьВпрайс; 
		|";
	КонецЕсли;
	
	ТекстЗапроса = ТекстЗапроса + "
	|Функция ЦенаТовара = Сумма(Цена);
	|Функция КоличествоКонОст = КонОст(Количество);
	|Функция КоличествоРезКонОст = КонОст(КоличествоРез);
	|Группировка Номенклатура без групп;
	|Группировка ТипЦен;
	|";
	
	Если Параметры.Получить("ТолькоВВыгружаемые") = "Да" Тогда
		ТекстЗапроса = ТекстЗапроса + "
		|Условие (НеВыгружать = 0); 
		|";
	КонецЕсли;
	
	ТекстЗапроса = ТекстЗапроса + "
	|Условие (ТипЦен в ТипыОтбора); 
	|";
	
	СписокУсловий = СоздатьОбъект("СписокЗначений");
	СписокУсловий.ДобавитьЗначение("Номенклатура");
	СписокУсловий.ДобавитьЗначение("Фирма");
	СписокУсловий.ДобавитьЗначение("Склад"); 
	СписокУсловий.ДобавитьЗначение("ТипЦен");
	
	УстановитьУсловия(ТекстЗапроса,СписокУсловий);
	
	Запрос.Выполнить(ТекстЗапроса);
	Пока Запрос.Группировка("Номенклатура") >  0  Цикл 
		ТекОстаток = Запрос.КоличествоКонОст - Запрос.КоличествоРезКонОст;
		Если Параметры.Получить("ТолькоВНаличии") = "Да" Тогда
			Если ТекОстаток <=  0  Тогда
				Продолжить;
			КонецЕсли;
		КонецЕсли;
		
		ТаблицаЦен.УдалитьСтроки();
		Пока Запрос.Группировка("ТипЦен") >  0  Цикл 
			ТаблицаЦен.НоваяСтрока();
			ТаблицаЦен.Тип		= Запрос.ТипЦен;
			ТаблицаЦен.Цена		= Запрос.ЦенаТовара;
			ТаблицаЦен.Валюта	= Запрос.Валюта;
		КонецЦикла; 
		Если ТаблицаЦен.КоличествоСтрок() >  0  Тогда
			Для СчетчикЦикла =  1  По ВыгрТипы.РазмерСписка() Цикл 
				ТекТип = ВыгрТипы.ПолучитьЗначение(СчетчикЦикла);
				ИспТип = ТекТип;
				Поз =  0 ;
				Если ТаблицаЦен.НайтиЗначение(ИспТип, Поз, "Тип") =  1  Тогда
					ТаблицаЦен.ПолучитьСтрокуПоНомеру(Поз);
					Цена    = ТаблицаЦен.Цена;
					Цена	= глПересчет(Цена, ТаблицаЦен.Валюта, Дата2, ОсновнаяВалюта, Дата2);
					ТекЦена = Цена;
					ИсходныеДанные.НоваяСтрока();
					ИсходныеДанные.ТекущийЭлемент = Запрос.Номенклатура;
					ИсходныеДанные.КодТовара = Запрос.Номенклатура;
					ИсходныеДанные.ТипЦены = ТекТип;
					ИсходныеДанные.Цена = ТекЦена;
					ИсходныеДанные.ВалютаЦены = СокрЛП(ОсновнаяВалюта);
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
	КонецЦикла; 
КонецПроцедуры

Процедура ВыбратьТипЦены(ИсходныеДанные)
	ИсходныеДанные.НоваяКолонка("Код");
	ИсходныеДанные.НоваяКолонка("Наименование");
	ИсходныеДанные.НоваяКолонка("Описание");
	ИсходныеДанные.НоваяКолонка("ОсновнойТип");
	
	Запрос = СоздатьОбъект("Запрос");
	ТекстЗапроса = 	"
	|Период с ТекДата по ТекДата;
	|ТипЦены = Справочник.ТипыЦен.ТекущийЭлемент;
	|Группировка ТипЦены Без Групп;
	|";
	
	УстановитьУсловия(ТекстЗапроса);
	
	Запрос.Выполнить(ТекстЗапроса);
	Пока Запрос.Группировка( 1 ) >  0  Цикл
		ИсходныеДанные.НоваяСтрока(); 
		ИсходныеДанные.ТекущийЭлемент = Запрос.ТипЦены;
		ИсходныеДанные.Код = Запрос.ТипЦены;
		ИсходныеДанные.Наименование = Запрос.ТипЦены.Наименование;
		ИсходныеДанные.Описание = Запрос.ТипЦены.Комментарий;
		Если Запрос.ТипЦены = Параметры.Получить("ОсновнойТипЦены") Тогда
			ИсходныеДанные.ОсновнойТип = "1";	
		Иначе
			ИсходныеДанные.ОсновнойТип = "0";
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры
...
Рейтинг: 0 / 0
1C 7.7 в Mysql
    #36560215
pyramid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bednii_Student,

у Вас нет в приведённом коде запроса к mysql.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / 1C 7.7 в Mysql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]