Ну, я даже не знаю, что сказать. Я очень занятой человек со множеством клиентов в своем регионе. Очень много разовой/фактовой работы не успеваю делать ни я, ни мои сотрудники. Наверное я бы сбрасывал заказы на стол, если бы был уверен в том, что после не прийдется проверять выполненную работу а просто можно взять ее и сдать. но как показывает опыт, это далеко не все. потом начинается... я забыл сказать/вы не так поняли/а вот так так точу/а мне еще../ а потом разбираться в чужом коде сложней... Поэтому либо отказываюсь, либо тяну сам. Не стоит забывать,что час работы в моем регионе довольно низко ценится, по сравнению с Киевом.
В зависимости от ситуации. поскольку на данный момент, Вы ведете только складской учет и взаиморасчеты, то обновление под новый кодекс Вам не сильно нужно. Но вдруг Вы решите вести полноценный бухгалтерский и налоговый учет то дальнейшие обновления обязательны. Решать Вам.
//==== первая часть мардлезонского балета.... Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Товары = Справочник.Товары.ТекущийЭлемент; |Код = Справочник.Товары.Код; |Наименование = Справочник.Товары.Наименование; |Группировка Код без групп; |";
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли;
Сообщить("1 часть марлезонского балета..."); Сообщить(ТекущееВремя());
шк = СоздатьОбъект("Справочник.ШтрихКод"); Пока Запрос.Группировка(1) = 1 Цикл Если Запрос.Товары.Актуален = Перечисление.Булево.Да Тогда тТов = Запрос.Товары; Если тТов.Мест <> 0 Тогда Если спМест.НайтиЗначение(тТов.Мест) = 0 Тогда спМест.ДобавитьЗначение(тТов.Мест); КонецЕсли; тзСкидка.НоваяСтрока(); тзСкидка.Товар = тТов; тзСкидка.Мест = тТов.Мест; тзСкидка.ЦенаСк = тТов.ПродажнаяЦена1.Получить(РабочаяДата()); КонецЕсли; тЦена = Запрос.Товары.ПродажнаяЦена3.Получить(РабочаяДата()); шк.ИспользоватьВладельца(тТов); Если шк.ВыбратьЭлементы() = 1 Тогда Пока шк.ПолучитьЭлемент() = 1 Цикл Если шк.ПометкаУдаления() = 0 Тогда тШК = Число(шк.ШтрихКод); Если (тШК <> 0) И (тЦена <> 0) Тогда
//ItemList //Сообщить(Строка(Запрос.Товары.Код) + " _ " + Строка(Число(шк.ШтрихКод)) + " _ " + Строка(Запрос.Товары.Наименование) + " _ " + Строка(Число(тЦена))); стрСоед = "SELECT Code,Name,Cen,Tax FROM ItemList WHERE Code="+тШК; Rs.Open(стрСоед,Соединение); Если RS.EOF=-1 Тогда RS.AddNew(); RS.Fields("Code").Value = Число(шк.ШтрихКод); КонецЕсли; RS.Fields("Name").Value = Лев(СокрЛП(Запрос.Товары.Наименование),16); RS.Fields("Cen").Value = Число(Запрос.Товары.ПродажнаяЦена3.Получить(РабочаяДата())); RS.Fields("Tax").Value = Число(?(Запрос.Товары.СтавкаНДС = Перечисление.СтавкаНДС.Двадцать,1,0)); RS.Update(); rs.Close(); // CodeAliases str2 = "SELECT Code,Alias,Mult FROM CodeAliases WHERE Alias="+Число(Запрос.Товары.Код); RS.Open(str2,Соединение); Если RS.EOF=-1 Тогда RS.AddNew(); RS.Fields("Code").Value = Число(шк.ШтрихКод); RS.Fields("Alias").Value = Число(Запрос.Товары.Код); RS.Fields("Mult").Value = 1; RS.Update(); КонецЕсли; rs.Close();
КонецЕсли; КонецЕсли; КонецЦикла; Иначе //Сообщить(Строка(Запрос.Товары.Код) + " _ " + Строка(Запрос.Товары.Наименование) + " _ " + Строка(Число(тЦена))); стрСоед = "SELECT Code,Name,Cen,Tax FROM ItemList WHERE Code="+Число(Запрос.Товары.Код); Rs.Open(стрСоед,Соединение); Если RS.EOF=-1 Тогда RS.AddNew(); RS.Fields("Code").Value = Число(Запрос.Товары.Код); КонецЕсли; RS.Fields("Name").Value = Лев(СокрЛП(Запрос.Товары.Наименование),16); RS.Fields("Cen").Value = Число(Запрос.Товары.ПродажнаяЦена3.Получить(РабочаяДата())); RS.Fields("Tax").Value = Число(?(Запрос.Товары.СтавкаНДС = Перечисление.СтавкаНДС.Двадцать,1,0)); RS.Update(); rs.Close(); КонецЕсли; КонецЕсли; КонецЦикла; Сообщить("окончание 1 части марлезонского балета..."); Сообщить(ТекущееВремя()); // конец 1 части марлезонског балета КонецПроцедуры
Выгружаю через INSERT
Процедура ВыгрузкаТоваров()
ИмяСервера = "LSW11"; ИмяБазыДанных = "cashbase"; Попытка Соединение =СоздатьОбъект("ADODB.Connection"); Соединение.Provider = "SQLOLEDB"; Соединение.ConnectionString = "Server=" + ИмяСервера + ";Database=" + ИмяБазыДанных + ";Trusted_Connection=yes"; Соединение.ConnectionTimeout = 20; Соединение.Open(); Сообщить("Установлено соединение с базой данных " + ИмяБазыДанных + " на сервере " + ИмяСервера); //Возврат 1; Исключение Предупреждение("Нихуя не получилось. Вероятно спиздили компьютер с данными. " + ИмяБазыДанных + " на сервере " + ИмяСервера,10); //Возврат 0; КонецПопытки;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли;
шк = СоздатьОбъект("Справочник.ШтрихКод"); Пока Запрос.Группировка(1) = 1 Цикл Если Запрос.Товары.Актуален = Да Тогда тТов = Запрос.Товары; тЦена = Запрос.Товары.ПродажнаяЦена3.Получить(ТекущаяДата()); шк.ИспользоватьВладельца(тТов); Если шк.ВыбратьЭлементы() = 1 Тогда Пока шк.ПолучитьЭлемент() = 1 Цикл Если шк.ПометкаУдаления() = 0 Тогда тШК = Число(шк.ШтрихКод); Если (тШК <> 0) И (тЦена <> 0) Тогда //DepItems
Как можно в 1С 7.7 Бухгалтерия для Украины при большой номенклатуре поставки отослать в электронном виде расходную (для контрагента приходную) накладную, чтобы облегчить работу по оприходованию товаров (материалов) покупателем. Взаимоотношения с покупателем постоянные.
Пару лет назад разрабатывал такую систему (мы были поставщиком), самое сложное оказалось привести к соответствию справочник Товары, но мы ввели одинаковые Артикулы и покупатели у себя также, Сделал кнопку ВыгрузитьВДБФ и написал универсальную обработку загрузки нашего ДБФ в различные конфигурации (бух, торг, комплекс), разослал всем, на месте подточили, каждый под себя (где то не было включено поиск товаров по Артикулу и пр.). Почта отправлялась из 1с с использованием RomMail.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!